在EF 6中,我可以这样做:
modelBuilder
.Properties()
.Where(p => p.PropertyType == typeof(string) &&
p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0)
.Configure(p => p.HasMaxLength(2000));
由于EF7 ModelBuilder没有Properties()
功能,我如何在EF7中做同样的事情?
答案 0 :(得分:9)
我认为这是"仍然缺乏" EF Core中的功能,并期望在以后的版本中添加它。
在此之前,我能建议的最接近(对于v1.1.0)如下:
foreach (var p in modelBuilder.Model
.GetEntityTypes()
.SelectMany(t => t.GetProperties())
.Where(p => p.ClrType == typeof(string) && p.GetMaxLength() == null))
{
p.SetMaxLength(2000);
}