升级到identity 2.0 EF迁移问题

时间:2014-10-23 11:31:37

标签: entity-framework azure azure-sql-database asp.net-identity ef-migrations

我有点卡住了。

我有一个应用程序,我刚刚将AspNet.Identity更新为2.0,以便利用新的密码重置方法。该应用程序也使用sql azure。

我遇到的一个问题是我的ApplicationUser类中有一个名为EmailAddress的属性。既然Identity具有属性Email属性,我决定删除它并创建迁移以更新我的数据库。当我对我的本地SQL服务器运行它时,这工作正常。迁移看起来像这样:

public partial class EmailFieldChange : DbMigration
{
    public override void Up()
    {
        Sql("UPDATE dbo.AspNetUsers SET Email = EmailAddress");
        DropColumn("dbo.AspNetUsers", "EmailAddress");
    }

    public override void Down()
    {
        AddColumn("dbo.AspNetUsers", "EmailAddress", c => c.String());
        Sql("UPDATE dbo.AspNetUsers SET EmailAddress = Email");
    }
}

但是我现在正在尝试将我的更改发布到azure,并且我发现了以下错误:

  

此版本的SQL Server不支持没有聚簇索引的表。请创建聚簇索引,然后重试。   无法删除约束。查看以前的错误。   该语句已终止。

这一切都很好,但EmailAddress字段没有编入索引!!表中唯一的索引是在我没有触及的Id字段上。我所有的谷歌搜索引导我与人们试图改变我没有做的主键的问题

有人能给我任何见解吗?

编辑:

我现在也试过这个,没有成功。

        Sql("UPDATE dbo.AspNetUsers SET Email = EmailAddress");
        CreateIndex("dbo.AspNetUsers", "Id", true, "PK_dbo.AspNetUsers");
        DropColumn("dbo.AspNetUsers", "EmailAddress");

0 个答案:

没有答案