代码之家  ›  专栏  ›  技术社区  ›  Barbaros Alp

如何在Ado.net实体框架中使用SaveChanges()方法?

  •  1
  • Barbaros Alp  · 技术社区  · 15 年前

    我设置了IDataContext,当我为实体创建数据类时,我从IDataContext继承它。

    IQueryable<T> GetAll();
    T GetById(long id);
    void Add(T entity);
    void Delete(T entity);
    void Save(T entity);
    

    如您所知,删除和保存方法具有这种结构;

    FooEntities db = new FooEntities();
    
    db.DeleteObject(Foo entity);
    // or save changes method
    db.SaveChanges();
    

    我的意思是这两种方法可以是广义的或者其他的。。。

    我的问题是如何以及在哪里使用这两种方法。

    • 实体的每个数据类的内部
    • 或者另一种使用方法。
    2 回复  |  直到 15 年前
        1
  •  1
  •   Aidan Ryan    15 年前

    您可以使用存储库模式抽象出框架的细节。这是一个 example implementation 实体框架的IRepository。至于在何处调用实际的删除和保存,您的控制器/演示者可能是一个候选对象。

        2
  •  0
  •   Dave Swersky    15 年前

    DeleteObject用于从存储中删除对象。如上所述调用DeleteObject 对SaveChanges()的调用实际上将该更改提交到数据库。这两者都是从存储中删除对象所必需的。