私の MVC コントローラーでは、IoC コンテナー (Ninject) を使用していますが、Entity Framework ObjectContext に関しては最適な使用方法がわかりません。
現在、私は次のようなことをしています:
using(var context = new MyObjectContext())
{
var stuff = m_repository.GetStuff(context);
}
これは、データベース接続を可能な限り短時間開いたままにしておくという観点から、管理するための最良の方法です。
リクエストごとに Ninject を介して ObjectContext を作成すると、明らかにデータベース接続が長時間開いたままになります。
また、上記のコードは...
var stuff = m_repository.GetStuff(m_myObjectContext);
(そして、いつコンテキストを破棄しますか...?)
ObjectContext のファクトリを作成し、それを DI 経由で渡す必要がありますか? これは結合を緩めますが、(私が知っている) ObjectContext のインターフェイスを維持する簡単な手段がない場合、これはテスト容易性に本当に役立ちますか?.
より良い方法はありますか?ありがとう