Entity Framework Core エラー: 「前の操作が完了する前に、このコンテキストで 2 番目の操作が開始されました」
内で Entity Framework Core を使用する場合ASP.Net Core 2.0 アプリケーションでは、2 番目の操作が前にコンテキストで開始されたことを示す「InvalidOperationException」が発生する可能性があります。前の操作が完了しました。
原因と解決策:
このエラーの根本的な原因は、Entity Framework Core のコンテキスト実装がスレッド セーフではないことです。これを解決するには、依存関係注入構成で DbContext を Transient として登録していることを確認してください:
services.AddDbContext<MyContext>(ServiceLifetime.Transient);
または、コンテキストを Transient として直接登録することもできます:
services.AddTransient<MyContext>();
コンテキストを次のように登録することは避けてくださいスコープ:
services.AddDbContext<MyContext>();
追加の考慮事項:
一時的な依存関係について:
コンテキストを一時的なものとして追加するということは、コンテキストが要求されるたびに新しいインスタンスが作成されることを意味します。これにより、スレッドの安全性の問題が防止されますが、複数のクラスにわたるエンティティに変更を加える機能も制限されます。
以上がEntity Framework Core の「前の操作が完了する前に、このコンテキストで 2 番目の操作が開始されました」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。