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