C# 无法使用dbSet-Entity框架删除

C# 无法使用dbSet-Entity框架删除,c#,wpf,entity-framework,datacontext,dbset,C#,Wpf,Entity Framework,Datacontext,Dbset,我正在使用EF6,并试图删除如下实体: public virtual void Delete(TEntity entity) { DbContext.Configuration.ValidateOnSaveEnabled = false; DbContext.ChangeTracker.DetectChanges(); _dbSet.Remove(entity); } DbContext.ChangeTracker

我正在使用EF6,并试图删除如下实体:

  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;
但它给了我这样的错误:

  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;

然后我用了另一种方法,像这样:

  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;
现在错误是这样的:

提前谢谢。

试试这个

DbContext.Entry(entity).State = EntityState.Deleted;
DbContext.SaveChanges();
试试这个

DbContext.Entry(entity).State = EntityState.Deleted;
DbContext.SaveChanges();

无法删除
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()

无法删除
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()
如果您要修改或删除它们。

需要检查存在Delete方法的DbContext初始化。需要检查存在Delete方法的DbContext初始化。entity对象不能被IEntityChangeTrackerOne的多个实例引用,实际上我发现了我的错误。我将从datagrid中选择的项直接传递给delete方法。现在,在首先获取所选项并将其传递给方法后,解决了我的问题。一个实体对象不能被多个IEntityChangeTrackerdone实例引用,我发现了我的错误。我将从datagrid中选择的项直接传递给delete方法。现在,在首先获取所选项目并将其传递给方法之后,解决了我的问题。