我正在使用Entity Framework Bulk Insert extension,因为我必须在我的数据库中插入几百万行。
using (var context = new MyDBContext())
{
context.Database.CommandTimeout = 36000; // has no effect
using (var tx = new System.Transactions.
TransactionScope(TransactionScopeOption.Required, new TimeSpan(0,2,0,0)))
{
context.BulkInsert(entities);
起初我在作业运行一分钟后收到错误,这导致我尝试增加事务范围的超时,我设置为两小时。之后我开始得到一个不同的错误:
System.Data.Entity.Core.EntityCommandExecutionException:执行命令定义时发生错误。有关详细信息,请参阅内部异常 ---- System.InvalidOperationException:无效的操作。连接已关闭。
10分钟后开心了,所以我尝试将CommandTimeout设置为1小时,但这似乎没有什么区别,因为我在10分钟后仍然会收到错误。
答案 0 :(得分:0)
您还应该在MSSQL中配置Timeout。使用SSMS,选择您的数据库引擎>右键单击>属性>连接>远程服务器连接>远程查询超时设置为0无限时间或3600一小时。