批量保存for循环中的6条记录

时间:2014-12-17 20:13:15

标签: c# entity-framework entity-framework-6.1

在使用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.   
  5. 无法建立MARS会话以准备将请求发送到服务器。 (提供者:SMux提供者,错误:19 - 物理连接不可用)
  6.   

1 个答案:

答案 0 :(得分:1)

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