2011-10-26 1 views
0

文の使用に関する質問がWebフォームのObjectContextにあります。我々は二つの方法でフォームを設定している場合はWebformsでのObjectContextの使用、ステートメントの使用とページごとの1インスタンスの比較

は、'Load()''Save()'言うと、両方のは、それがの寿命に依存する、コンテキストのインスタンス変数を作成し、両方の方法でそれを使用するために、より良い練習になりObjectContextの使用を必要としますオブジェクトを暗黙に処分するクラス、またはメソッドごとに1回、usingにラップされたオブジェクトコンテキストの2つのインスタンスを明示的に作成するクラス?

私が尋ねる理由は、2つのことがわからないということです。 A)オブジェクト・コンテキストをインスタンス化するオーバーヘッドが、クラス全体が使用するコンテキストをオープンのままにしておくことを保証するのに十分高いかどうか、またはB)寿命のためのオブジェクト・コンテキストの存在が長すぎるかどうか作業単位が完了した後で明示的にクローズする必要がありますか?

このような環境のためのアイデア/提案/ベストプラクティスはありますか?

答えて

2

ページまたはWebフォームごとにそれについて考えていない、要求ごとObjectContext管理することができますが、それは現在のRequestにバインドする必要があり、詳細はこちらをご確認ください:

How to Manage ObjectContext Per Request in ASP.NET

これを多かれ少なかれ、NHibernateのセッションで通常行われることです。

私は、usingステートメントを使用してコードを作成し、直ちに必要なすべてのメソッドでObjectContextを作成/破棄しました。場合によっては、エンティティが1つのコンテキストからロードされ、別のコンテキストに保存されるため、このエンドを特別な注意を払う必要があります。それはしばらくしています...

2

Tip 18を見ると、ObjectContextの構築時間はごくわずかです。

一緒に動作するさまざまな方法でコンテキストにアクセスする必要がある場合は、常にそのコンテキストをパラメータとして渡すことができます。メソッドがお互いに依存しない場合は、毎回新しいコンテキストを選択します。

関連する問題