2

エンティティ フレームワークを使用する最初のアプリケーションに取り組んでいます。ページベースのシンプルな WPF アプリがあります。ページのクラス レベルで定義された EF コンテキストがあり、ページの読み込みイベントでインスタンス化します。あとは、基本的にそのまま放置して、ユーザーがいろいろな選択をするときに使ったりします。しかし、長年のプログラミングの経験から、このコンテキストを開いたままにしておくべきではないと思うようになりました。何かに使用する必要があるたびに新しくする必要がありますか、それとも問題ではありませんか?

私はVS 2010、.NET 4.0を使用しています。

4

1 に答える 1

5

EF コンテキストは、存続期間が短いように設計されています。彼らは多くのハウスキーピングを行わず、短期的にメモリを解放することを気にせずにメモリを割り当てる傾向があります. さらに、変更の追跡は時間の経過とともに継続し、累積されるため、コンテキストが長く存在するほど、変更の追跡に割り当てられるメモリが多くなります。

経験則として、必要最小限のスコープを使用し、意味のある最短の時間でコンテキストを維持します。

于 2012-05-06T01:18:53.333 に答える