无法使用dbSet删除 - 实体框架
我使用EF6,我试图删除这样的实体:无法使用dbSet删除 - 实体框架
public virtual void Delete(TEntity entity) {
DbContext.Configuration.ValidateOnSaveEnabled = false;
DbContext.ChangeTracker.DetectChanges();
_dbSet.Remove(entity);
}
但它给我的错误是这样的:
然后我用另一种方法如下:
DbContext.ChangeTracker.DetectChanges(); DbContext.Entry(entity).State = EntityState.Deleted;
现在错误是s类似于:
在此先感谢。
回答:
无法删除它不存在ObjectStateManager
实体。在尝试删除之前尝试附加它;
public virtual void Delete(TEntity entity) {
DbContext.Configuration.ValidateOnSaveEnabled = false;
DbContext.ChangeTracker.DetectChanges();
var entry = DbContext.Entry(entity);
if (entry.State == EntityState.Detached)
_dbSet.Attach(entity);
_dbSet.Remove(entity);
}
另外,我不知道你是如何获取的实体实例,但不要使用.AsNoTracking()
如果你修改或删除。
回答:
试试这个。
DbContext.Entry(entity).State = EntityState.Deleted; DbContext.SaveChanges();
以上是 无法使用dbSet删除 - 实体框架 的全部内容, 来源链接: utcz.com/qa/261089.html