public static void ConfigureNames(this ModelBuilder modelBuilder, NamingOptions namingOptions) { foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes()) { if (namingOptions.EntitiesToSkipEntirely(entity)) { continue; } // Entity / Table if (!namingOptions.EntitiesToSkipTableNaming(entity)) { string tableName = namingOptions.TableNameSource(entity); entity.SetTableName(namingOptions.TableNamingFunction(tableName)); } // Properties entity.GetProperties() .ToList() .ForEach(x => x.SetColumnName(namingOptions.ColumnNamingFunction(x.GetColumnName()))); // Primary and Alternative keys entity.GetKeys().ToList().ForEach(x => x.SetName(namingOptions.ConstraintNamingFunction(x.GetName()))); // Foreign keys entity.GetForeignKeys() .ToList() .ForEach(x => x.SetConstraintName(namingOptions.ConstraintNamingFunction(x.GetConstraintName()))); // Indices entity.GetIndexes() .ToList() .ForEach(x => x.SetName(namingOptions.ConstraintNamingFunction(x.GetName()))); } }