我想为Entity Framework中的字符串设置默认的MaxLength,以避免在未指定MaxLength时使用nvarchar(MAX)
。 (理想情况下,我想检测没有MaxLengthAttribute的任何字符串,并抛出一个异常,以防止在设置之前生成迁移)。
自定义代码优先约定(如here所示)表明这种方法应该可行:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties<string>()
.Configure(c => c.HasMaxLength(500));
}
但是,此默认的最大长度已覆盖AspNet.Identity库(通常为nvarchar(128)
)中IdentityUser的GUID。
我怎样才能很好地发挥这个效果?