我们需要按照与数据库相同的顺序添加,修改或删除实体。
我们使用下面的代码片段来覆盖ObjectContext类中的“SaveChanges”方法,以获取已添加,修改或删除的不同实体。
foreach(ObjectStateEntry中的条目)
ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted))
{
//每个实体的操作
}
假设我们有两张桌子A& B在数据库中。这些是无关的。我们使用实体框架在这些表上执行以下操作。
在使用上面的代码片段时,我们注意到插入,更新和删除被组合在一起,即我们按顺序获得了1,3,6,7,2,4,5。
在这篇文章(http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/d8448144-05dd-4c34-b93c-9336c3b62f6e/)中提到,没有明确的方法确定在“SaveChanges”之前完成的操作中插入的顺序。
上面的代码段是否获取了在数据库上执行这些操作的正确顺序。
如果此订单不正确,是否有其他方法可以获得正确的订单。
答案 0 :(得分:0)
不,你不能改变操作的顺序。控制顺序的唯一方法是单独运行每个操作(每次操作后调用SaveChanges
)。