最近、私はEntityFrameworkを探索するとともに、リポジトリパターンとUnitOfWorkの概念を掘り下げ始めました。
MVCの例に基づいて独自の実装を作成しました。ここでは、UnitOfWorkをコントローラーから次のように破棄していました。
protected override void Dispose(bool disposing)
{
unitOfWork.Dispose();
base.Dispose(disposing);
}
私はMVCにはまったく興味がなく、Webformsでもかなり新しいですが、UnitOfWorkを他の「すべて」が破棄されるように破棄するために、Controllerdisposeメソッドをオーバーライドしていると思います。
基本的に、ASP.NET WebForms Webサイトに同じ概念を実装し、ページのコードの背後で使用されるUnitOfWorkを、ページ自体の破棄と一緒に破棄したいと思います。
ライフサイクルからPage_Unloadイベントに同じものを追加することを検討しましたが、これまでそのようなことをいじったことがないため、これが適切な方法であるかどうかはわかりませんでした。私の考えは次のとおりです。
protected void Page_Unload(object sender, EventArgs e)
{
unitOfWork.Dispose();
base.Dispose();
}
どうすればそれを安全に達成できますか、そして私は正しい軌道に乗っていますか?