質問

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

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

役に立ちましたか?

解決

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top