2015-06-16 39 views
2

是否可以設置所有字符串字段的默認長度(除非我另有說明)? 目前,它真正的錯誤我去添加類似如何在實體框架fluent api的所有字段上設置默認長度?

modelBuilder.Entity<Game>().Property(x => x.YardLine).HasMaxLength(256); 到每一個字符串字段,只是爲了避免在數據庫中所有我的琴絃列具有爲nvarchar(最大)。

回答

2

可以使用一種叫做Custom Code First Conventions,但只有當你使用實體框架6+。

由於@ranquild mentions,您可以使用

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); 
+0

完美答案!謝謝!!! – Tanuki

1

補充一點:

modelBuilder.Properties<string>().Configure(p => p.HasMaxLength(256)); 
相關問題