检查作为 POCO(不是从 EntityObject 派生)并附加到 EF 上下文的实体的状态的方法是什么?
谢谢!
如果您使用的是 DbContext 并且 c 是您的实体引用
var state = Context.Entry(c).State;
如果您使用的是 ObjectContext。
//if x is your entity reference
var state = context.ObjectStateManager.GetObjectStateEntry(x);
如果您正在使用标识符字段并使用DBContext
,则可以使用以下内容进行检查,假设Id
实体是 entityId;
if(Context.Entities.Local.Any(q => q.Id == entityId))
{
// already attached to the context
}
参考这个:
DbSet 的 Local 属性提供了对当前由上下文跟踪且尚未标记为已删除的集合实体的简单访问。访问 Local 属性永远不会导致将查询发送到数据库。