2012-01-21 8 views
0

何が良いですか?あるいは、次のことは良い習慣ですか? 私はSpring.netを使用してDbContextのインスタンスを作成し、それをアクション内で使用するためにすべてのコントローラに挿入します。オブジェクトはシングルトンです。時には "ObjectContextインスタンスが破棄されました"という例外が発生することがあります。これが理由である可能性がありますが、これは再現可能ではないと思われ、開発中に私のアプリケーションが使用されています。contollersとアクションを介してSpring.Netで作成されたDbContextオブジェクトを再利用

ここで、すべてのコントローラクラスでDbContextを作成し、そのアクションで再利用する方が良いでしょう。すべてのアクション自体にDbContextオブジェクトを作成することもできます。また、Springの設定でシングルトンにならないように設定するだけで、アクセスするたびに作成されます。

は、それはリクエストスコープを使用してdbcontextを注入するのが最善です答えと任意の説明

答えて

1

していただきありがとうございます。このようにして、コンテキストは要求の開始時に作成され、最後に配置されます。リクエスト中は、DBコンテキストを利用できるようになり、遅延読み込みオブジェクトを処理できます。

シングルトンとして登録すると、dbcontextはすべてのリクエストで共有されます。ほとんどの場合、これはあなたが望むものではありません。たとえば、ロードされたすべてのオブジェクトへの参照を保持し、データベース全体をメモリにロードする可能性があります。

関連する問題