Avatar ·

SqlException: المعاملة الجديدة غير مسموح بها طالما توجد خيوط أخرى قيد التشغيل في الجلسة (Entity Framework)

مرحباً بالجميع! أنا مبتدئ في C# و Entity Framework، واجهت خطأ غير مفهوم. أكتب تطبيقاً بسيطاً على ASP.NET MVC مع SQL Server. يوجد دالة في الخدمة يجب أن تقوم بتحديث عدة سجلات في قاعدة البيانات. أستخدم حلقة `foreach`، وداخل الحلقة أستدعي `SaveChanges()` لكل سجل. في النهاية أحصل على الاستثناء التالي: **SqlException: New transaction is not allowed because there are other threads running in the session.** إليك الكود المبسط: ```csharp public void UpdateOrders(List orders) { using (var context = new MyDbContext()) { foreach (var order in orders) { order.Status = "Processed"; context.Entry(order).State = EntityState.Modified; context.SaveChanges(); // الخطأ هنا في التكرار الثاني ```