在执行 SaveChanges 之前,我正在执行几个插入命令。
有没有办法查询附加实体(我现在在 SaveChanges 之前插入的实体)以检查是否添加或更新了特定记录?
最佳答案
是的,有办法。 ObjectContext
实例提供名为 ObjectStateManger
的属性。 ObjectStateManager
管理所有附加的实体并且它知道它们的状态:
ObjectStateEntry entry = context.ObjectStateManager.GetObjectStateEntry(attachedEntity);
EntityState state = entry.State;
如果您需要获取所有修改或添加的实体,您可以使用:
var entities = context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added | EntitiSate.Modified)
.Select(e => e.Entity);
您可以进一步使用 OfType
来仅选择某种类型的实体。您还可以使用此逻辑 SaveChanges
,如 Stack Overflow 上多次描述的那样 - 例如 here .
关于c# - 查询附加实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087666/