如何限制UserName表格中的字段AspNetUsers?
这不是:
public class ApplicationUser : IdentityUser
{
[Required, MaxLength(15)]
public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
或这个:
modelBuilder.Entity<ApplicationUser>().Property(x => x.UserName).HasMaxLength(15);
作品.
我需要这个,因为设置了Index上nvarchar(max)给了我这个错误信息:
表'dbo.AspNetUsers'中的列'UserName'的类型无效,无法用作索引中的键列.
为了详细,我试图设置这样的索引:
public override void Up()
{
CreateIndex("dbo.AspNetUsers", "UserName", true, "IX_UserName");
}
public override void Down()
{
DropIndex("dbo.AspNetUsers", "IX_UserName");
}
Run Code Online (Sandbox Code Playgroud) entity-framework username ef-code-first entity-framework-6 asp.net-identity
我刚刚将库Microsoft.AspNet.Identity.EntityFramework更新到最后一个版本(2.0.0.0),我发现创建表时出现了一些错误.当我生成迁移代码(向上和向下方法)时,我无法将更改上传到数据库,因为我在执行"Updata-Database"时遇到索引问题
指定密钥太长; 最大密钥长度为767字节
要执行的代码:
public override void Up()
{
CreateTable(
"dbo.AspNetRoles",
c => new
{
Id = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"),
Name = c.String(nullable: false, maxLength: 256, storeType: "nvarchar"),
})
.PrimaryKey(t => t.Id)
.Index(t => t.Name, unique: true, name: "RoleNameIndex");
CreateTable(
"dbo.AspNetUserRoles",
c => new
{
UserId = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"),
RoleId = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"),
})
.PrimaryKey(t => new { t.UserId, t.RoleId })
.ForeignKey("dbo.AspNetRoles", t => t.RoleId, cascadeDelete: true)
.ForeignKey("dbo.AspNetUsers", t …Run Code Online (Sandbox Code Playgroud)