簡體   English   中英

如何在實體框架流利的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM