我在過去幾天一直在使用Linq在存儲庫模式上搜索一下。這裏有很多信息,但它往往是矛盾的,我仍然在尋找一個明確的來源。Linq到SQL存儲庫應該實現IDisposable
我仍然不確定的事情之一是知識庫是否應該實例化它自己的DataContext並具有SubmitChanges方法,或者如果DataContext應該被注入並且提交在外部處理。我已經看到了這兩種設計,但沒有對推理做出真正的評論。
不管怎樣,下面的模式是很常見
class Repository<T>
{
DataContext db = new LinqDataContext();
public IEnumerable<T> GetAll() { ... }
public T GetById() { ... }
... etc
public void SubmitChanges() { ... }
}
所以我的主要問題是,與上述實施,爲什麼不倉庫需要實現IDisposable?我已經看過上面幾百個例子,並且他們中沒有一個似乎打擾了處理DataContext。這不是內存泄漏嗎?
這是一個網站或「胖」的客戶? – 2010-06-04 16:07:28