在我的ASP.NET Core 1.1.1
代码第一个应用中,我首先将FirstName
和LastName
属性添加到内置ApplicationUser.cs
。在add-migration
中运行update-database
和PM console
命令后,它在SQL Server 2012数据库中添加了类型nvarchar(max)
的相应列。然后,我将数据注释[Column(TypeName = "varchar(5)")]
添加到这两个属性,同时添加具有相同数据注释的另一个属性FullName
。然后我再次运行add-migration
和update-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;
}
}