在 for 循环中批量保存 ef 6 记录

本文关键字:保存 ef 记录 for 循环 | 更新日期: 2023-09-27 18:34:28

有没有人知道或解释为什么以下代码在使用 EF6 时引发下面提到的以下错误?我间歇性地收到这些错误。另外,请建议在发生错误时如何保存记录。

using (var context = GetNewDBEntities())
{
   for (var i = 0; i < Docs.Count; i++)
   {
      context.Docs.Add(Docs[i]);
      //Save 50 Records per batch
      if (i % 50 == 0)
          context.SaveChanges();
   }
  context.SaveChanges();
}

EF 6 会断开上述代码的连接,并出现以下错误。

  1. 更新条目时出错。
  2. 请求运行
  3. 失败,因为批处理已中止,这可能是由客户端发送的中止信号引起的,或者另一个请求在同一会话中运行,这使得会话繁忙。当前命令上发生严重错误。结果(如果有的话(应丢弃。
  4. 未能建立 MARS 会话以准备将请求发送到服务器。(提供程序:SMux 提供程序,错误:19 - 物理连接不可用(

在 for 循环中批量保存 ef 6 记录

我将SqlAzureExecutionStrategy包含在EF6.1中,错误消失了,至少2周没有错误。