首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“更新-数据库”命令在TimeOut异常下失败

“更新-数据库”命令在TimeOut异常下失败
EN

Stack Overflow用户
提问于 2015-09-01 11:36:13
回答 7查看 10.8K关注 0票数 26

我正在使用EF迁移,并且有一个包含大量数据的表。我需要更改具体列的MaxLength (它没有长度约束)。

代码语言:javascript
复制
ALTER TABLE MyDb ALTER COLUMN [MyColumn] [nvarchar](2) NULL

如果出现TimeOut异常,此命令将失败。试图设置CommandTimeout i nDbContext构造函数,但没有任何结果。

是否有任何方法禁用或设置包管理器控制台EF命令的超时?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-09-01 11:43:12

我自己找到了解决办法。

由于EF5,有一个新的属性CommandTimeout,它可以从DbMigrationsConfiguration获得

代码语言:javascript
复制
internal sealed class MyMigrationConfiguration : DbMigrationsConfiguration<MyDbContext>
{
    public Configuration()
    {
        CommandTimeout = 10000; // migration timeout
    }
}
票数 31
EN

Stack Overflow用户

发布于 2016-10-10 10:44:03

另一种方法是使用

代码语言:javascript
复制
Update-Database -script

然后,您可以使用对数据库运行脚本。

票数 32
EN

Stack Overflow用户

发布于 2016-11-30 20:52:45

我只是有几乎完全相同的事情:超时过期时,试图增加一列长度。对我来说,使用update-database一小时前一直很好。这个问题被证明是我试图修改的数据库和表上的一个开放事务。一旦回滚该事务,update-database命令就会顺利完成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32330603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档