简体   繁体   English

查询附加的实体

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM