实体框架 - AlterColumn迁移的超时过期错误

时间:2016-11-13 12:27:45

标签: sql sql-server entity-framework azure

我的Azure SQL数据库中有7,517,717条记录(在Azure V12服务器上,它位于P4定价层),这个表格相对较大。

当我创建表时,我忘了为属性定义MaxLength,所以现在它的类型为nvarchar(max)

我想更改此内容,因此我创建了迁移(使用FluentAPI),如下所示:

 public partial class FeedTitleMaxLength : DbMigration
 {
    public override void Up()
    {
        AlterColumn("dbo.Feed", "Title", c => c.String(maxLength: 100));
    }

    public override void Down()
    {
        AlterColumn("dbo.Feed", "Title", c => c.String());
    }
 }

我这样运行Update-Database命令:

Update-Database -Verbose -ConnectionString "Data Source=serverUrl,1433;Database=dbName;User ID=myusername;Password=mypassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=3000;MultipleActiveResultSets=True;" -ConnectionProviderName "System.Data.SqlClient"

web.config中的我的连接字符串看起来是一样的。而且我也定义了这样的超时:

 this.Database.CommandTimeout = 3000;

但无论我做什么或尝试我在30/40秒后得到此错误:

  

超时已过期。操作完成之前经过的超时时间或服务器没有响应。尝试连接到路由目标时发生此故障。尝试连接到原始服务器时花费的持续时间是 - [Pre-Login] initialization = 97;握手= 110; [登录]初始化= 0;认证= 0; [登录后]完成= 32;

我有什么方法可以运行此迁移吗?还是一些解决方法?例如,我可以创建迁移,但在SQL中运行AlterColumn命令,然后运行Update-Database命令。这会不会搞乱?

0 个答案:

没有答案
相关问题