我最近在搜索使用Linq的仓储模式方面的大量信息。虽然有很多信息,但常常相互矛盾,我仍在寻找权威的来源。
有一件事我仍不确定,那就是仓储是否应该实例化自己的DataContext并具有SubmitChanges方法,还是将DataContext注入并由外部处理提交。我见过这两种设计,但没有真正的解释。
无论如何,以下模式非常常见。
有一件事我仍不确定,那就是仓储是否应该实例化自己的DataContext并具有SubmitChanges方法,还是将DataContext注入并由外部处理提交。我见过这两种设计,但没有真正的解释。
无论如何,以下模式非常常见。
class Repository<T>
{
DataContext db = new LinqDataContext();
public IEnumerable<T> GetAll() { ... }
public T GetById() { ... }
... etc
public void SubmitChanges() { ... }
}
我的主要问题是,使用以上实现方式,为什么存储库不需要实现IDisposable?我已经看到了几百个类似的例子,但似乎没有人费心去处理DataContext的释放。这不会造成内存泄漏吗?