【发布时间】:2014-12-17 20:13:14
【问题描述】:
有没有人知道或解释为什么在使用 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 断开上述代码的连接并出现以下错误。
- 更新条目时出错。
- 由于批处理被中止,请求无法运行,这可能是由于客户端发送的中止信号,或者同一会话中正在运行另一个请求,导致会话繁忙。当前命令发生严重错误。结果,如果有的话,应该丢弃。
- 未能建立 MARS 会话以准备将请求发送到服务器。 (提供者:SMux Provider,错误:19 - 物理连接不可用)
【问题讨论】:
-
这批工作完美。它间歇性地抛出上述错误并且不写入数据库。问题更具体地针对导致这些错误的错误。
-
好的,连接字符串中似乎不应该有“多个活动结果集=true”。发生此错误时,我不会尝试继续。上下文可能处于不一致的状态。您能否展示一些
Doc对象的详细信息? -
它只是一个被EF渲染为类对象的表,所以当它无法创建新的会话时,它会回滚所有的会话吗?发生此错误时,您究竟是什么意思继续?那么为何不?它间歇性地发生。
-
查看错误3:
error: 19 - Physical connection is not usable。似乎数据库不是开发机器的本地数据库。我会首先制作数据库的本地副本并尝试在那里进行,在我看来,网络连接存在问题。 -
对不起,应该提到这个错误来自生产,并且数据库不存在于同一台机器上。
标签: c# entity-framework entity-framework-6.1