2017-01-02 2 views
5

In EF 6 ich etwas tun kann:Änderung alle String-Eigenschaft max Länge

modelBuilder 
    .Properties() 
    .Where(p => p.PropertyType == typeof(string) && 
       p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0) 
    .Configure(p => p.HasMaxLength(2000)); 

seit EF7 Modelbuilder nicht die Properties() Funktion, wie soll ich tun gleiche Sache in EF7?

Antwort

6

Ich nehme an, dass dies eine der "noch fehlenden" Funktionalitäten in EF Core ist und erwarte, dass es in einer späteren Version hinzugefügt wird.

Bis dahin in der Nähe I (für v1.1.0) vorschlagen kann, ist wie folgt:

foreach (var p in modelBuilder.Model 
    .GetEntityTypes() 
    .SelectMany(t => t.GetProperties()) 
    .Where(p => p.ClrType == typeof(string) && p.GetMaxLength() == null)) 
{ 
    p.SetMaxLength(2000); 
} 
Verwandte Themen