0

オブジェクトインスタンスまたは静的ヘルパークラスをいつ作成するかについて混乱しています。たとえば、データモデルを更新してデータベースに送信するメソッドを呼び出すと、DataContextのインスタンスが作成されます。そのDatacontextの存続期間はどのくらいですか?新しいデータの更新が必要になるたびに新しいインスタンスを作成しても大丈夫ですか?

私のコントローラーでは、DataCOntextのインスタンスを作成し、たとえばコントローラーにポストバックするときにそのインスタンスを再利用します。

4

1 に答える 1

2

DataContextは非常に軽量なクラスであり、作業単位として使用することを目的としています。通常、必要に応じて適切なDataContextを作成するファクトリを渡します。通常、これをusingブロックでラップし、結果をリスト(または他のオブジェクト)に変換して、クエリがコントローラーコードで実行され、結果のオブジェクトがビューに渡されるようにします。このようにして、DataContextを(usingブロックから)コントローラーメソッドで破棄できます。

ファクトリをコントローラに挿入する理由は2つあります。これにより、DataContextをオンデマンドで作成できるようになり、テスト用にモックのDataContextを生成するファクトリを使用できるようになります。後者を使用すると、単体テストで実際のデータベースを使用することを回避できます。

于 2009-01-09T01:15:21.143 に答える