首先使用Code时,ASP.NET Identity架构会更改问题

时间:2017-08-14 02:50:40

标签: c# sql-server asp.net-core ef-migrations asp.net-identity-2

在我的ASP.NET Core 1.1.1代码第一个应用中,我首先将FirstNameLastName属性添加到内置ApplicationUser.cs。在add-migration中运行update-databasePM console命令后,它在SQL Server 2012数据库中添加了类型nvarchar(max)的相应列。然后,我将数据注释[Column(TypeName = "varchar(5)")]添加到这两个属性,同时添加具有相同数据注释的另一个属性FullName。然后我再次运行add-migrationupdate-database命令,但这次只将FullName列添加到表中(按预期使用varchar(15));但是其他两列的长度没有变化,仍然是nvarchar(max)。当我再次运行上述两个命令时,迁移文件为空 - 这意味着它没有检测到任何进一步的更改。 问题:如何通过迁移命令更改其他两列的列长?

ApplicationUser.cs [初次更改]

public class ApplicationUser : IdentityUser
{
    public string FirstName{ get; set; }
    public string LastName{ get; set; }
}

public class ApplicationRole: IdentityRole
{
    public ApplicationRole()
    {

    }
    public ApplicationRole(string name) : this()
    {
        this.Name = name;
    }
}

ApplicationUser.cs [在第一次更改后运行add-migration和update-database后进行第二次更改]

public class ApplicationUser : IdentityUser
{
    [Column(TypeName = "varchar(15)")]
    public string FirstName{ get; set; }

    [Column(TypeName = "varchar(15)")]
    public string LastName{ get; set; }

    [Column(TypeName = "varchar(15)")]
    public string FullName{ get; set; }
}

public class ApplicationRole: IdentityRole
{
    public ApplicationRole()
    {

    }
    public ApplicationRole(string name) : this()
    {
        this.Name = name;
    }
}

0 个答案:

没有答案