public void ShouldOnlyConvertWhatItWasAsked(NamingConverterFlags flags) { _modelBuilder.ConvertNaming(x => x.ToLower(), flags); var dict = new Dictionary <NamingConverterFlags, List <string> > { { NamingConverterFlags.Schemas, this.GetSchemas() }, { NamingConverterFlags.Tables, this.GetTables() }, { NamingConverterFlags.Keys, this.GetKeys() }, { NamingConverterFlags.ForeignKeys, this.GetForeignKeys() }, { NamingConverterFlags.Indexes, this.GetIndexes() }, { NamingConverterFlags.Columns, this.GetColumns() } }; foreach (var item in dict) { item.Value.Should().NotBeEmpty(); if (flags.HasFlag(item.Key)) { item.Value.Should().OnlyContain(x => !x.Any(char.IsUpper)); } else { item.Value.Should().OnlyContain(x => x.Any(char.IsUpper)); } } }
/// <summary>Преобразование имён объектов</summary> /// <param name="modelBuilder"> /// <see cref="ModelBuilder" /> /// </param> /// <param name="renameFunc">Функция преобразования</param> /// <param name="namingConverterFlags"> /// <see cref="NamingConverterFlags" /> /// </param> public static void ConvertNaming( this ModelBuilder modelBuilder, Func <string, string> renameFunc, NamingConverterFlags namingConverterFlags = NamingConverterFlags.All) { var renamer = new MutableEntityTypeRenamer(renameFunc, namingConverterFlags); foreach (var entity in modelBuilder.Model.GetEntityTypes()) { renamer.Rename(entity); } }
/// <inheritdoc cref="MutableEntityTypeRenamer" /> /// <param name="renameFunc">Функция преобразования</param> /// <param name="namingConverterFlags"> /// <see cref="NamingConverterFlags" /> /// </param> public MutableEntityTypeRenamer( Func <string, string> renameFunc, NamingConverterFlags namingConverterFlags = NamingConverterFlags.All) { _renameFunc = renameFunc; _renames = new Dictionary <NamingConverterFlags, Action <IMutableEntityType> > { { NamingConverterFlags.Schemas, this.RenameSchema }, { NamingConverterFlags.Tables, this.RenameTable }, { NamingConverterFlags.Keys, this.RenameKeys }, { NamingConverterFlags.ForeignKeys, this.RenameForeignKeys }, { NamingConverterFlags.Indexes, this.RenameIndexes }, { NamingConverterFlags.Columns, this.RenameColumns } } .Where(x => namingConverterFlags.HasFlag(x.Key)) .Select(x => x.Value) .ToList(); }