无法使用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

回到顶部