EF Core: переопределить соглашения об именах - PullRequest
0 голосов
/ 08 февраля 2019

Я переносу приложение в EF Core, и у меня возникла проблема с определением модели.

Предположим, что этот простой сценарий:

public class AEntity
{
    public ICollection<BEntity> Bs { get; set; }
}

public class BEntity
{
   public int AId { get; set; }      
}

Я использую соглашение имя класса + Сущность, позволяющая различать полноценные классы и модель БД.Но я, очевидно, не хочу использовать одно и то же наименование в базе данных, мне нужны только имена таблиц, такие как A, B, ..

Я могу просто переопределить это соглашение об именах в OnModelCreating используя .Relational().TableName = getRidOfEntity(...).

Но теперь, если я хочу перечислить объекты типа AEntity, я получаю эту ошибку:

'Неверное имя столбца' AEntityId '.

Очевидно, что EF Core создает внешний ключ с использованием исходного имени класса и не выглядит в переопределенной модели.

Как я могу переименовать имя столбца внешнего ключа в модели?Я не хочу использовать аннотации или указывать список типов / FK через свободный API.Модель строго придерживается некоторых соглашений, поэтому нет двусмысленностей, и все можно настроить таким образом.

...