質問: EF4のコンテキスト寿命に関するもう1つの質問で申し訳ありませんが、しばらくこれについて疑問に思っていましたが、答えが見つからないようです。私は(私の観点から見て)たくさんのパターンや複雑すぎるものにはあまり慣れていないので、それを単純にしたいと思います。 私は、コンテキストが各httpリクエストによって管理されるASP.NETアプリケーションで作業しています。これは私の意見では非常に良いアプローチです。 しかし、現在はwinformsアプリケーションを使用しています。トランザクションごとにトランザクションを作成したり、レポートごとにコンテキストを作成しただけではパフォーマンスが低下することがあります。このパフォーマンスの問題は非常に問題があるということではありません、私はちょうどASP.NETのHTTP要求ごとにWinformsのための単純な戦略があるかどうか知りたいですか?
回答: 各クエリに対してコンテキストを作成しないでください。同時に、Form(またはアプリケーション)の全存続期間にわたって使用されるコンテキストを作成しないでください。 **単一の作業単位** (これには多くの照会を含めることができ**ます)のコンテキストを作成します** 。 このようにして、すべての変更をコンテキストにカプセル化し、自分で心配することなくEntity Frameworkにデータベース呼び出しを小さなトランザクションでラップさせることができます。 私はそれらを独立して使用できるようにするためにEntity ContextからRepositoryと作業単位のパターンを抽象化することを好む(これはすべてを非常に明確にする)。 MSDNには、実際には詳細についての適切な記事があります。 MSDN - Entity Framework 4でリポジトリおよび作業単位のパターンを使用する