如何在实际删除实体之前更新实体中包含的审核信息?我正在研究一个派生自DbContext的类。
我尝试将状态更改为Modified,然后设置更新的信息,然后调用base.SaveChanges(),然后将其标记为已删除。当我在设置更新的信息后尝试调用SaveChanges时出现问题。似乎关系的其他对象被标记为已删除,我得到此异常:
"A relationship from the 'ChildrenEntity' AssociationSet is in the 'Deleted' state. Given multiplicity constraints, a corresponding 'ParentEntity' must also in the 'Deleted' state."
谢谢!
答案 0 :(得分:2)
是的,这是有问题的,你可能找不到更好的方法然后使用数据库中的删除触发器。如果你想在应用程序中处理它,工作方式将是:
context.ObjectStateManager.GetObjectStateEntires
中的所有记录,并将每个条目的实际状态存储到某个临时数据结构中。 SaveChanges
SaveChanges
您应该在TransactionScope