6

EntityFrameworkのObjectContextオブジェクトをキャッシュにキャッシュするのが賢明かどうか疑問に思いました。これにより、ユーザーが同時に問題が発生すると同時に、複数の接続に関する問題が発生しますか?

「接続は現在閉じられています」などのエラーが発生しました。これは、複数のユーザーとObjectContextのキャッシュが原因であるのか、それとも、更新を複数回押すか、ページを停止して他のことをすばやく実行することに関連しているのでしょうか。エラーを取得するために実行しました)。

4

2 に答える 2

6

上記に同意します。ただし、問題なくHttpContext.Current.Itemsコレクションにオブジェクトコンテキストをキャッシュします。また、良い読み物:

http://dotnetslackers.com/articles/ado_net/managing-entity-framework-objectcontext-lifespan-and-scope-in​​-n-layered-asp-net-applications.aspx

于 2010-02-10T00:04:59.280 に答える
5

私はそれをお勧めしません。ObjectContextは、アクティブに作業しているエンティティへの変更を監視するためにアクティブである必要があります。そうでない場合は、ObjectContextをキャッシュする前にアクティブなエンティティを切断する必要があります。

アクティブなエンティティがない場合は、ObjectContextをキャッシュする必要はありません。EFv1では、切断されたエンティティの操作はせいぜい問題があったので、キャッシュしないか、より管理しやすいエンティティ(自己追跡エンティティ、POCOエンティティなど)を可能にするEntityFrameworkv4を待ちませんでした。

最後にもう1つ、複数のスレッドを追加すると思っただけでも、問題が発生する可能性があります。変更を適用すると、ObjectContextによって追跡されたすべての変更がコミットされます。複数のユーザーが単一のコンテキストを共有している場合...まあ、うまくいけば、問題を見ることができます。

于 2010-02-08T22:05:27.357 に答える