【问题标题】:Generic delete and update using Entity Framework使用实体框架进行通用删除和更新
【发布时间】:2016-03-01 08:47:46
【问题描述】:

考虑以下情况: 我想使用实体框架从数据库中删除和更新项目。如果数据库上下文、要删除的行的 ID、要更新的列以及应该更新的值已经可用,我想一般使用 LINQ to 实体来实现它。

我一般怎么做。请指教。提前致谢。

【问题讨论】:

  • 注解,操作=delete时要删除。现在是添加!
  • @hazjack 根据我需要做相反的要求:)
  • 请与我们分享您到目前为止所做的尝试

标签: c# entity-framework linq


【解决方案1】:

您可以在 DB 和您的代码之间使用像 Repository 这样的 DAO 对象,有些像这样

public class Dao<T> : where T:class {
    internal virtual DbSet<T> EntitySet {
        get {
            return DB.Set<T>();
        }
    }

    public void DeleteById(int id) {
        T instance = FindById(id);
        Delete(instance);
    }


    public void Update(T instance) {
        DB.Entry(instance).State = EntityState.Modified;
        DB.SaveChanges();
    }
}

并使用代码

Dao<someClass> daoClass = new Dao<someClass>(new dbContext());
daoClass.DeleteById(5);
daoClass.Update(someClass);

【讨论】:

    【解决方案2】:

    美好的一天,我不确定这个问题,但我会提供有关如何更新和删除的想法

    更新

     using (var db = new DbContext())
     {
        var tobeupdatedrow = db.TableNames.FirstOrDefault(b => b.Id== Id);
        if (tobeupdatedrow != null)
        {
            tobeupdatedrow.tobeupdatedcolumn = "Some new value";
            db.SaveChanges();
        }
     }
    

    删除

    using (var db = new DbContext())
     {
        var tobedeletedrow = db.TableNames.FirstOrDefault(b => b.Id== Id);
        if (tobedeletedrow != null)
        {
            db.TableNames.Remove(tobedeletedrow);
            db.SaveChanges();
        }
     }
    

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 1970-01-01
      • 2016-11-17
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多