защищенное переопределение недействительный OnModelCreating (ModelBuilder MODELBUILDER) { modelBuilder.Conventions.Remove <PluralizingTableNameConvention> (); }
В прошлом пре-релиз EF Ядра, имя таблицы для объекта была такой
же , как имя класса сущности. В RC2 теперь мы используем имя DbSet
собственности. Если ни одно из свойств DbSet не определен для данного типа объекта,
то используется имя класса сущности.
Теперь, если вы хотите вернуться к RC1 таблице именования, то есть могут быть использованы три вида методов:
1. Выберите сингулярное имя DbSet свойства:
Один из способов отделить DbSet имен свойств (мне не нравится) Допустим, у вас есть сущность книги, и хотите отобразить в книге таблицы:
общественного DbSet <Книга> Книга { получить; поставил; }
2. Используйте ToTable () Fluent API:
Конечно, вы всегда можете использовать свободно API для покрытия любого подходящего соглашения, а также указать имя таблицы в соответствии с вашими потребностями:
modelBuilder.Entity <книги> () ToTable (. "Книга");
3. Написание пользовательских конвенции:
Просто потому, что EF Ядро RC2 нет никакого согласия в этом отношении, это не значит, что мы не можем написали это, во-первых, мы должны создать метод расширения над объектами ModelBuilder:
используя Microsoft.EntityFrameworkCore.Metadata.Internal; общественный статический класс ModelBuilderExtensions { общественных статический вакуум RemovePluralizingTableNameConvention ( это ModelBuilder MODELBUILDER) { Еогеасп (IMutableEntityType объект в modelBuilder.Model.GetEntityTypes ()) {entity.Relational () TableName = entity.DisplayName (). }}}
Тогда мы просто называем его из методов OnModelCreating DbContext на объектах:
защищенное переопределение недействительного OnModelCreating (ModelBuilder MODELBUILDER) {modelBuilder.RemovePluralizingTableNameConvention (); }
Off:
Я не как множественного числа имен таблиц, я предпочитаю последний вариант, чем другие варианты, и идти с потоком. Другими словами, это мое личное мнение, другие разработчики могут найти это лучше, чем любой из этих трех способов в противном случае выгоднее, и выбрать матч с :)