change all string property max length
In EF 6 I can do something like this:
modelBuilder
.Properties()
.Where(p => p.PropertyType == typeof(string) &&
p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0)
.Configure(p => p.HasMaxLength(2000));
since EF7 ModelBuilder doesn't have the Properties()
function, how do I do same thing in EF7?
Solution 1:
I suppose this to be one of the "still lacking" functionalities in EF Core and expect it to be added in some later version.
Until then, the closest I can suggest (for v1.1.0) is as follows:
foreach (var p in modelBuilder.Model
.GetEntityTypes()
.SelectMany(t => t.GetProperties())
.Where(p => p.ClrType == typeof(string) && p.GetMaxLength() == null))
{
p.SetMaxLength(2000);
}