0

DbContextトランザクションごとに新規作成することの違いは何ですか:

using (var context = new MyDbContext()) { /* transaction */ }

アプリケーション全体で1つを使用する

var context = MyDbContext.Singleton;
*/ transaction */
4

1 に答える 1

2

1つ(最初)は正しい方法です。

もう一つは間違ったやり方です。

Entity Framework は、有効期間が短いコンテキストを持つように設計されています。実行時にメモリ管理やクリーンアップを行わず、メモリが存在する限り、メモリを増やして使用し続けます。使用後は廃棄するように設計されています。2 番目の方法で使用すると、コードが壊れます。

Web アプリを開発している場合は、さらに悪化します。2 番目の方法では、コンテキストがすべてのユーザー間で共有されるため、データが破損する可能性があり、複数のユーザーが同時にハンマーを打とうとすると状態が破損します。

于 2013-01-09T21:18:15.167 に答える