是否可以通过直接引用权利的集合属性来更新实体框架中两个POCO实体之间的关联?
例如,是否应该执行以下工作(例如,使用存储库中的新值更新MyEntityChildren列表)?
MyEntity.MyEntityChildren = Repository.GetChildren(/*arguments*/);
MyUnitOfWork.Commit(); //calls dBContext.SaveChanges();
public class MyEntity : ISomeInterface
{
// public properties
Public Virtual List MyEntityChildren {get; set;}
public MyEntity(){
this.MyEntityChildren = new List();
}
}
public class Child : ISomeChildInterface
{
Public Virtual List MyEntities {get; set;}
public Child(){
this.MyEntities = new List();
}
}
public class Repository
{
//a lot of code
public List GetChildren(/*arguments*/)
{
//some LINQ expressions
}
}
当我们执行上述操作时,会出现如下错误: 违反PRIMARY KEY约束'PK_SomeRelationshipKeys'。无法在对象'dbo.SomeRelationshipTable'中插入重复键。 声明已经终止。
有趣的是,上面的错误仅在我们“以速度”运行时发生。如果我们逐步调试调试器中的代码,一切正常。
有任何想法吗?