c# – 更改所有字符串属性的最大长度

前端之家收集整理的这篇文章主要介绍了c# – 更改所有字符串属性的最大长度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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中做同样的事情?

解决方法

我认为这是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);
}

猜你在找的C#相关文章