Подтвердить что ты не робот

Как мне сначала разделить мои таблицы в EF Code?

Я предпочитаю использовать сингулярные существительные при наименовании моих таблиц базы данных. Однако в EF-коде генерируемые таблицы всегда имеют множественное число. Мои DbSets являются плюрализованными, и я считаю, что EF генерирует имена, но я не хочу создавать эти имена, поскольку считаю, что более рационально использовать их во множественном числе. Я также попытался переопределить настройку, но безрезультатно.

Любые идеи? Вот мой код и спасибо.

MyObjectContext.cs

public class MyObjectContext : DbContext, IDbContext
{
     public MyObjectContext(string connString) : base(connString)
     {
     }
     public DbSet<Product> Products {get;set;}
     public DbSet<Category> Categories {get;set;}
     //etc.

     protected override void OnModelCreating(ModelBuilder modelBuilder)
     {
        modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
     }
}
4b9b3361

Ответ 1

Для этой цели вы удалили неправильное соглашение (PluralizingEntitySetNameConvention). Просто замените метод OnModelCreating ниже, и вам будет хорошо идти.

using System.Data.Entity.ModelConfiguration.Conventions.Edm.Db;
...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{    
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

С Entity Framework 6 в вашем файле, который наследуется от DbContext:

using System.Data.Entity.ModelConfiguration.Conventions;

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

Ответ 2

Вы также можете изменить значение свойства:

В меню "Сервис" выберите "Параметры". В диалоговом окне "Параметры" разверните "Инструменты базы данных". Нажмите O/R Designer. Установите Плюралирование имен Enabled = False, чтобы установить конструктор O/R, чтобы он не менял имена классов. Установите Плюралирование имен на Enabled = True, чтобы применить правила плюрализации к именам классов объектов, добавленных в O/R Designer.

Ответ 3

Местоположение определения PluralizingTableNameConvention переместилось на:

using System.Data.Entity.ModelConfiguration.Conventions;