Ralat Teras Rangka Kerja Entiti: "Operasi kedua bermula pada konteks ini sebelum operasi sebelumnya selesai"
Apabila bekerja dengan Teras Rangka Kerja Entiti dalam projek ASP.Net Core 2.0, anda mungkin menghadapi ralat yang menyatakan "Operasi kedua bermula pada konteks ini sebelum operasi sebelumnya selesai." Ralat ini boleh berlaku walaupun kod berjalan tanpa isu setempat tetapi gagal apabila digunakan ke pelayan pementasan.
Punca Kemungkinan:
Penyelesaian:
Daftar DbContext sebagai Transient:
Untuk menyelesaikan isu konkurensi yang disebabkan oleh suntikan pergantungan, daftarkan DbContext sebagai sementara dan bukannya berskop. Gunakan kod berikut:
services.AddTransient<MyContext>();
Elakkan Ungkapan Lambda Async:
Jika operasi tak segerak sedang digunakan, faktorkan semula kod untuk mengelak daripada menggunakan ungkapan lambda async.
Pastikan Benang Keselamatan:
Fahami had pelaksanaan DbContext dan pastikan keselamatan rangkaian dengan melaksanakan operasi secara berurutan atau menggunakan mekanisme penyegerakan yang sesuai.
Pertimbangkan Faktor Lain:
Atas ialah kandungan terperinci Mengapa Aplikasi Teras Rangka Kerja Entiti Saya Membuang 'Operasi kedua bermula pada konteks ini sebelum operasi sebelumnya selesai'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!