0

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

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

4

1 に答える 1

1

リクエスト スコープを使用して dbcontext を注入することをお勧めします。このようにして、コンテキストはリクエストの開始時に作成され、最後に破棄されます。リクエスト中に、遅延ロードされたオブジェクトを処理できるように、db コンテキストが利用可能になります。

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

于 2012-01-22T09:56:59.427 に答える