Для этого не существует конвенции для сборки EF RC2. Это из основной команды EF:
В прошлом пре-релиз EF Ядра, имя таблицы для объекта был совпадает с именем класса сущности. В RC2 теперь мы используем имя свойства DbSet . Если для данного типа сущности не определено свойство DbSet, то используется имя класса сущности.
Теперь, если вы хотите, чтобы вернуться к конвенциям RC1 именовании для таблиц, у вас есть 3 пути пойти с:
1. Выбор Сингулярные имен для DbSet Свойства:
Один из способов - создать уникальные имена свойств DbSet (которые мне не нравятся). Скажем, например, у вас есть книги сущность и вы хотите отобразить в книги стол:
public DbSet<Book> Book { get; set; }
2. Использование ToTable() Fluent API:
Вы можете, конечно, всегда используйте свободный API, чтобы переопределить любое соглашение на месте и диктовать имя таблицы для всего, что вы хотите:
modelBuilder.Entity<Book>().ToTable("Book");
3. Дать Таможенную конвенцию:
Просто потому, что EF Ядро RC2 не имеют конвенций для этого, это не значит, что мы не можем написать наши собственные. Для этого, во-первых, мы должны создать метод расширения на ModelBuilder
объекта:
using Microsoft.EntityFrameworkCore.Metadata.Internal;
public static class ModelBuilderExtensions
{
public static void RemovePluralizingTableNameConvention(this ModelBuilder modelBuilder)
{
foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
{
entity.Relational().TableName = entity.DisplayName();
}
}
}
И тогда мы просто называем его из метода OnModelCreating на нашем DbContext объекта:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.RemovePluralizingTableNameConvention();
}
Закрытие:
Мне не нравится множественные имена таблиц, и мне нравится последний вариант лучше, чем другие, и пошел с этим. Тем не менее, это мое личное мнение, и другие разработчики могут найти любой из этих 3 способов более благоприятными, чем другие, и решили пойти с этим :)
Спасибо Morteza. Я думаю, что на данный момент я просто установил имя таблицы в сущности. –
Нет проблем. Конечно, это тоже работает :) –
Я также добавил свой путь к моему ответу, чтобы у нас были все они в одном месте в качестве ориентира для других разработчиков-разработчиков. Благодарю. –