写一个通用的删除,即仅仅需要参数:实体类(对应表) abn,字段 id,字段的值 x,即可删除。
即将下面的代码写成通用的,感谢了,对 EF 真的困惑!db.Entry(db.abns.Where(p=>p.ID== x).FirstOrDefault()).State = EntityState.Deleted;
db.SaveChanges(); 
EF 删除

解决方案 »

  1.   

    void Delete<T>(Func<DBContext, IQueryable<T>> data, Expression<Func<T, bool>> where)
    {
        db.Entry(data(db).Where(where).FirstOrDefualt()).State = EntityState.Deleted;
        db.SaveChanges();
    }usage:
    Delete(db => db.abns, p => p.ID == x);
      

  2.   

    你好,提示错误 32 类型“T”必须是引用类型才能用作泛型类型或方法“System.Data.Entity.DbContext.Entry<TEntity>(TEntity)”中的参数“TEntity” F:\CS_JSJC\jsjc\JSJC\Controllers\baseController.cs 622 13
    代码
            public void Delete<T>(Func<DbContext, IQueryable<T>> data, Expression<Func<T, bool>> where)
            {
                db.Entry(data(db).Where(where).FirstOrDefault()).State = EntityState.Deleted;
                db.SaveChanges();
            }另外,请推荐一本学习此类技术的书籍,感觉非常困惑!谢谢!
      

  3.   

    public void Delete<T>(Func<DbContext, IQueryable<T>> data, Expression<Func<T, bool>> where) where T : class