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(); // 第二次迭代时出错 } } } ``` 该方法从控制器调用: ```csharp [HttpPost] public ActionResult ProcessOrders(List orderIds) { var orders = db.Orders.Where(o => orderIds.Contains