让这两个班,
父类
class Parent{
[Key]
public int Id { get; set; }
public virtual ICollection<Child> child { get; set; }
}
和一个儿童班
class Child {
[Key]
public int Id { get; set; }
[ForeignKey("Parent")]
public int Parent_Id { get; set; }
public Parent Parent{ get; set; }
}
我想设置一个像这样的新子类:
var child = new Child();
MyParentInstacnce.child.Add(child)
但是,当我设置父类状态时。
db.Entry(child).State = System.Data.Entity.EntityState.Added;
db.Entry(MyParentInstacnce).State = System.Data.Entity.EntityState.Modified;
我得到了一个错误的错误:
附加信息:发生了参照完整性约束违规:&#39; Parent_Id&#39;的属性值。在一段关系的一端与'Parent.Id&#39;的财产价值不匹配。在另一端。
解决了这个问题,将child.Parent_Id
的值设置为当前父ID。
我想知道是否可以以某种方式使EntityFramework通过MyParentInstacnce.child.Add(child)
如何配置Entity Framework以自动定义导航属性?
OBS
Entify Frameworks能够实现这一目标。您需要做的就是不要创建导航属性。然后导航将在引擎盖下,EF将完成所有工作。但是在这种情况下,我真的需要能够阅读导航属性。