![](/img/trans.png)
[英]Set default Date value during Model Generation in Code First Entity Framework Fluent API
[英]How to set default length on all fields in entity framework fluent api?
是否可以设置所有字符串字段的默认长度(除非我另有说明)? 此刻我真的很烦我去添加类似
modelBuilder.Entity<Game>().Property(x => x.YardLine).HasMaxLength(256);
到每个字符串字段,只是为了避免在数据库中所有我的字符串列上使用nvarchar(max)。
您可以使用“ 自定义代码优先约定” ,但前提是您使用的是Entity Framework 6+。
作为@ranquild 提到 ,您可以使用
modelBuilder.Properties<string>().Configure(p => p.HasMaxLength(256));
配置所有字符串属性的默认最大长度。 您甚至可以过滤将配置应用于以下属性:
modelBuilder.Properties<string>()
.Where(p => someCondition)
.Configure(p => p.HasMaxLength(256));
最后,实体类型本身的任何配置都将优先。 例如:
modelBuilder.Entity<EntityType>().Property(x => x.StringProperty)
.HasMaxLength(DifferentMaxLength);
添加:
modelBuilder.Properties<string>().Configure(p => p.HasMaxLength(256));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.