运行实体框架迁移时的SQL超时

时间:2016-07-15 15:17:52

标签: entity-framework ef-migrations

我在EF Migration中运行SQL()命令时遇到SQL Timeout。

情况: 我正在用一个表替换一堆(> 50)表,并且需要将那些表中的数据转换为即将放入新表中的数据。我通过以下方式组织了迁移:

1.创建新表。

  1. 在同一个迁移中,使用SQL()函数运行迁移数据的sql脚本。
  2. 3.Drop所有旧表。

    目前,迁移会出现以下错误:

    System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out

    错误发生在我给他们安装程序的环境中,他们在没有我参与的情况下运行它,因此我无法手动运行单个迁移,并在中间暂停以运行SQL脚本。

    有没有办法改变连接的超时,或解决这个问题?

    环境:

    EF 6.0 Code First

    SQL Server 2012

2 个答案:

答案 0 :(得分:4)

请参阅此answer

  

使用Configuration.cs文件设置自定义超时:

     

内部密封类配置:

$cordovaInAppBrowser.open('geo:0,0?q=<latitude>,<longitude>', '_system');

使用此方法,您可以仅为迁移更改超时,而不是每个人都使用默认连接字符串。

答案 1 :(得分:2)

您应该能够在连接字符串中设置连接超时,例如:

Connection Timeout=180;