Tag: entity framework 4

已经有一个打开的DataReader与这个Command关联,必须先closures它

我有这个查询,我得到这个函数的错误: var accounts = from account in context.Accounts from guranteer in account.Gurantors select new AccountsReport { CreditRegistryId = account.CreditRegistryId, AccountNumber = account.AccountNo, DateOpened = account.DateOpened, }; return accounts.AsEnumerable() .Select((account, index) => new AccountsReport() { RecordNumber = FormattedRowNumber(account, index + 1), CreditRegistryId = account.CreditRegistryId, DateLastUpdated = DateLastUpdated(account.CreditRegistryId, account.AccountNumber), AccountNumber = FormattedAccountNumber(account.AccountType, account.AccountNumber) }) .OrderBy(c=>c.FormattedRecordNumber) .ThenByDescending(c => […]

引入FOREIGN KEY约束可能会导致循环或多个级联path – 为什么?

我一直在摔跤了一段时间,不能完全弄清楚发生了什么。 我有一个包含边的卡实体(通常是2) – 卡和边都有一个阶段。 我正在使用EF Codefirst迁移,并且迁移失败,出现此错误: 在表“边”上引入FOREIGN KEY约束“FK_dbo.Sides_dbo.Cards_CardId”可能会导致循环或多个级联path。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 这是我的卡实体: public class Card { public Card() { Sides = new Collection<Side>(); Stage = Stage.ONE; } [Key] [Required] public virtual int CardId { get; set; } [Required] public virtual Stage Stage { get; set; } [Required] [ForeignKey("CardId")] public virtual […]

在保存EF4 POCO对象的更改时更新关系

entity framework4,POCO对象和ASP.Net MVC2。 我有一个多对多的关系,可以说BlogPost和Tag实体之间。 这意味着在我生成的POCO BlogPost类中,我有: public virtual ICollection<Tag> Tags { // getter and setter with the magic FixupCollection } private ICollection<Tag> _tags; 我从ObjectContext的一个实例请求一个BlogPost和相关的标签,并将其发送到另一个层(在MVC应用程序中查看)。 后来我找回更新的BlogPost,更改了属性并更改了关系。 例如它有标签“A”“B”和“C”,新的标签是“C”和“D”。 在我的例子中,没有新的标签,标签的属性从不改变,所以唯一应该保存的是改变的关系。 现在我需要保存在另一个ObjectContext中。 (更新:现在我试图做在相同的上下文实例,也失败了。) 问题是:我无法正确保存关系。 我尝试了我发现的一切: Controller.UpdateModel和Controller.TryUpdateModel不起作用。 从上下文获取旧的BlogPost,然后修改集合不起作用。 (用下一个不同的方法) 这可能会工作,但我希望这只是一个解决方法,而不是解决scheme:(。 尝试每个可能的组合中的BlogPost和/或标签的附加/添加/ ChangeObjectStatefunction。 失败。 这看起来像我所需要的,但它不工作(我试图解决它,但不能解决我的问题)。 尝试了ChangeState / Add / Attach / …上下文的关系对象。 失败。 “不工作”在大多数情况下意味着我在给定的“解决scheme”上工作,直到它不产生错误并至less保存BlogPost的属性。 这些关系会发生什么变化:通常标签再次被添加到标签表中,新的PK和保存的BlogPost引用这些,而不是原来的。 当然,返回的标签有PK,在保存/更新方法之前,我检查PK,它们与数据库中的相同,所以EF可能认为它们是新对象,而那些PK是临时的。 我知道的一个问题,可能使它无法find一个自动化的简单解决scheme:当一个POCO对象的集合被改变,这应该发生在上面提到的虚拟集合属性,因为然后FixupCollection技巧将更新另一端的反向引用多对多的关系。 然而,当一个View“返回”一个更新的BlogPost对象时,并没有发生。 这意味着也许对我的问题没有简单的解决scheme,但这会让我非常难过,而且我会讨厌EF4-POCO-MVC的胜利:(也就是说EF不能在MVC环境中做到这一点,使用EF4对象types:(我认为基于快照的更改跟踪应该发现更改后的BlogPost与具有现有PK的标记具有关系。 顺便说一句:我认为同样的问题发生在一对多的关系(谷歌和我的同事这样说)。 我会尝试在家里,但即使这样做不能帮助我在我的应用程序中的六个多对多的关系:(。

一个或多个实体的验证失败。 有关更多详细信息,请参阅“EntityValidationErrors”属性

使用代码优先的方法播种我的数据库时出现此错误。 一个或多个实体的验证失败。 有关更多详细信息,请参阅“EntityValidationErrors”属性。 说实话我不知道如何检查验证错误的内容,Visual Studio向我展示了它有8个对象的数组。 所以8验证错误。 这是与我以前的模型,但我做了一些改变,我下面解释: 我有一个名为Status的枚举,我将其更改为一个名为Status的类 我将类ApplicantsPositionHistory更改为具有2个外键到同一个表 请原谅我的长码,但我必须把它全部粘贴。 以下代码的最后一行引发异常。 namespace Data.Model { public class Position { [DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)] public int PositionID { get; set; } [Required(ErrorMessage = "Position name is required.")] [StringLength(20, MinimumLength = 3, ErrorMessage = "Name should not be longer than 20 characters.")] [Display(Name = "Position name")] public string name { get; […]