We can remove single conventions this way:
modelBuilder.Conventions.Remove();
modelBuilder.Conventions.Remove
I just create some solution with reflection:
public class Context : DbContext
{
private static IList<Type> _types = typeof(IConvention).Assembly.GetTypes()
.Where(t => !t.IsAbstract && t.IsClass &&
typeof(IConvention).IsAssignableFrom(t))
.ToList();
private static MethodInfo _method =
typeof(ConventionsConfiguration).GetMethod("Remove");
// DbSets ...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
foreach (var type in _types)
{
MethodInfo method = _method.MakeGenericMethod(type);
method.Invoke(modelBuilder.Conventions, null);
}
}
}