Как мне придать сингулярность моим таблицам в EF Code First?

Я предпочитаю использовать единственные существительные при именовании таблиц моей базы данных. Однако в коде 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>();
     }
}

3 ответа

Решение

Вы удалили неправильное соглашение (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>();
}

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

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

Расположение определения PluralizingTableNameConvention перемещено в:

using System.Data.Entity.ModelConfiguration.Conventions;

Другие вопросы по тегам