Entity framework 在“之前获得插入、更新和删除操作的正确执行顺序”;“保存更改”;

Entity framework 在“之前获得插入、更新和删除操作的正确执行顺序”;“保存更改”;,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我们需要以与数据库相同的顺序添加、修改或删除实体 我们通过重写ObjectContext类中的“SaveChanges”方法来获取已添加、修改或删除的不同实体,从而使用下面的代码段 foreach(中的ObjectStateEntry条目) ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted)) { //对每个实体的业务 } 假设数据库中有两

我们需要以与数据库相同的顺序添加、修改或删除实体

我们通过重写ObjectContext类中的“SaveChanges”方法来获取已添加、修改或删除的不同实体,从而使用下面的代码段

foreach(中的ObjectStateEntry条目) ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted)) {
//对每个实体的业务 }

假设数据库中有两个表A和B。这些都是无关的。我们使用实体框架对这些表执行以下操作

  • 在列表中插入新行
  • 更新B中的一行
  • 在B中插入新行
  • 更新中的行(不是步骤1中插入的行)
  • 删除B中的一行(不是步骤2和3中受影响的行)
  • 在B中插入新行
  • 在列表中插入新行
  • 在使用上述代码段时,我们注意到插入、更新和删除被分组在一起,也就是说,我们得到的实体顺序是1,3,6,7,2,4,5

    这是在这篇文章中提到的(http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/d8448144-05dd-4c34-b93c-9336c3b62f6e/)在“SaveChanges”之前执行的操作中,没有确定插入顺序的方法

    上述代码段是否获取了在数据库上执行这些操作的正确顺序


    如果此顺序不正确,是否有其他方法获得正确的顺序。

    否您不能更改操作顺序。控制顺序的唯一方法是分别运行每个操作(每次操作后调用
    SaveChanges

    除了更改操作顺序,我更关心的是在“SaveChanges”调用之前捕获正确的操作顺序。问题是我得到的命令是否正确。