Detach(object entity)
上没有DbContext
。
我是否可以先在EF代码上分离对象?
答案 0 :(得分:213)
这是一个选项:
dbContext.Entry(entity).State = EntityState.Detached;
答案 1 :(得分:132)
如果要分离现有对象,请按照@Slauma的建议进行操作。如果要在不跟踪更改的情况下加载对象,请使用:
var data = context.MyEntities.AsNoTracking().Where(...).ToList();
如评论中所述,这不会完全脱离实体。它们仍然是附加的并且延迟加载有效,但实体不会被跟踪。例如,如果您只想加载实体来读取数据而不打算修改它们,则应该使用它。