c# - 查询附加实体

标签 c# .net entity-framework

在执行 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/

相关文章:

c# - 将 "Max Length"添加到正则表达式

c# - 动态更改 web.config 中的 connectionString

c# - 如何使用 pop3 c# 从 Yahoo mail 中读取最新的电子邮件

entity-framework - Entity Framework 合并选项不跟踪不良性能

mysql - EntityFramework 不添加带有表名的 dbname

c# - Entity Framework 错误 - 错误 11009 : Property ' ' is not mapped

c# - 如何在c#中删除解密中的填充

c# - c# 中的事件处理程序 - 语法/模式

.net - 在 .NET 中转义 MySQL 字符

.net - 您会将新的开源 .NET 项目放在哪里?