加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:32:31 所属栏目:百科 来源:网络整理
导读:在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()
在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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读