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

时间:2009-08-21 00:31:04

标签: c# entity-framework ado.net

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

IDataContext接口有4种方法。

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 个答案:

答案 0 :(得分:1)

您可以使用Repository模式抽象出框架的细节。这是实体框架的example implementation IRepository。至于调用实际删除和保存的位置,您的Controller / Presenter可能是候选者。

答案 1 :(得分:0)

DeleteObject用于从商店中删除对象。如上所述调用DeleteObject 将对象标记为已删除。对SaveChanges()的调用实际上会将更改提交到数据库。两者都是从商店中删除对象所必需的。