是否可以設置所有字符串字段的默認長度(除非我另有說明)? 目前,它真正的錯誤我去添加類似如何在實體框架fluent api的所有字段上設置默認長度?
modelBuilder.Entity<Game>().Property(x => x.YardLine).HasMaxLength(256);
到每一個字符串字段,只是爲了避免在數據庫中所有我的琴絃列具有爲nvarchar(最大)。
是否可以設置所有字符串字段的默認長度(除非我另有說明)? 目前,它真正的錯誤我去添加類似如何在實體框架fluent api的所有字段上設置默認長度?
modelBuilder.Entity<Game>().Property(x => x.YardLine).HasMaxLength(256);
到每一個字符串字段,只是爲了避免在數據庫中所有我的琴絃列具有爲nvarchar(最大)。
可以使用一種叫做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);
補充一點:
modelBuilder.Properties<string>().Configure(p => p.HasMaxLength(256));
完美答案!謝謝!!! – Tanuki