如何更新Entity Framework 4.1中的关联? *实体框架中的非常奇怪的行为

时间:2011-04-20 23:31:25

标签: c# entity-framework-4.1

是否可以通过直接引用权利的集合属性来更新实体框架中两个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'中插入重复键。 声明已经终止。

有趣的是,上面的错误仅在我们“以速度”运行时发生。如果我们逐步调试调试器中的代码,一切正常。

有任何想法吗?

0 个答案:

没有答案