Я переносу приложение в 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.Модель строго придерживается некоторых соглашений, поэтому нет двусмысленностей, и все можно настроить таким образом.