[英]query the attached entities
I am doing several insert commands before doing SaveChanges. 我在做SaveChanges之前做了几个插入命令。
Is there a way to query the attached entities (that I inserted right now before the SaveChanges) in order to check whether a specific record was added or updated? 有没有办法查询附加的实体(我现在在SaveChanges之前插入)以检查是否添加或更新了特定记录?
Yes there is a way. 是的,有办法。 ObjectContext
instance offers property called ObjectStateManger
. ObjectContext
实例提供名为ObjectStateManger
属性。 ObjectStateManager
manages all attached entities and it knows their state: ObjectStateManager
管理所有附加的实体,它知道它们的状态:
ObjectStateEntry entry = context.ObjectStateManager.GetObjectStateEntry(attachedEntity);
EntityState state = entry.State;
If you need to get all modified or added entities you can use: 如果您需要获取所有修改或添加的实体,您可以使用:
var entities = context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added | EntitiSate.Modified)
.Select(e => e.Entity);
You can further use OfType
to select only entities of some type. 您可以进一步使用OfType
来仅选择某种类型的实体。 You can also use this logic SaveChanges
as described many times on Stack Overflow - for example here . 您还可以在Stack Overflow上多次使用此逻辑SaveChanges
- 例如此处 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.