EntityContextの存続期間の管理については、多くの質問がありました。
例:LINQのコンテキストをエンティティにインスタンス化する
私は、エンティティコンテキストは作業単位と見なされるべきであり、したがって再利用されるべきではないという結論に達しました。素晴らしい。
しかし、データベースアクセスを高速化するための調査を行っているときに、このブログ投稿に遭遇しました...
投稿では、他のフレームワークと比較してEFのパフォーマンスが低いのは、新しいEntityContextオブジェクトが必要になるたびにEntityConnectionオブジェクトが作成されることが原因であることが多いと主張しています。
これをテストするために、 Global.asax.cs Application_Start()で静的EntityConnectionを手動で作成しました。
次に、ステートメントを使用してすべてのコンテキストを次のように変換しました
using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection)
{
....
}
私の知る限り、これはエラーなしで少しスピードアップしたようです。
しかし、これは安全ですか?
アプリケーション全体の静的EntityConnectionを使用すると、競合状態が発生しますか?
よろしく、カービン