“Update-Database”命令因TimeOutexception而失败

我正在使用EF迁移并拥有包含大量数据的表。 我需要更改具体列的MaxLength(它没有长度限制)。

ALTER TABLE MyDb ALTER COLUMN [MyColumn] [nvarchar](2) NULL 

此命令因TimeOutexception而失败。 试图设置CommandTimeout i nDbContext构造函数没有任何运气。

有没有办法禁用或设置Package Manager Console EF命令的超时?

或者通过使用来编写更改脚本

 Update-Database -script 

然后,您可以使用SQL Management Studio对数据库运行脚本并运行它。

自己找到解决方案。

从EF5开始,有一个新属性CommandTimeout可以从DbMigrationsConfiguration获得

 internal sealed class MyMigrationConfiguration : DbMigrationsConfiguration { public Configuration() { CommandTimeout = 10000; // migration timeout } } 

我刚刚完成了几乎完全相同的事情:尝试增加列长度时超时到期。 对我来说,使用update-database一小时前工作得很好。 问题原来是数据库和我试图改变的表上的一个开放事务。 一旦我回滚了该事务, update-database命令就没有问题了。