#entity-framework #entity-framework-core #ef-core-3.1
#entity-framework #entity-framework-core #ef-core-3.1
Вопрос:
У меня довольно большая база данных, и я создаю небольшое приложение поверх нее для управления небольшой частью данных. Проблема в том, что в database team существует соглашение, согласно которому столбцы, являющиеся первичными ключами в базе данных, именуются PK_EntityName
.
Теперь я не хочу вносить это соглашение в код C #.
Как мне сопоставить свойство Id
класса C # со PK_EntityName
столбцом, используя fluent api?
Заранее благодарю вас!
Комментарии:
1. learn.microsoft.com/en-us/ef/core/modeling/…
2.
builder.Property(...)
возвращает объект типа, дляPropertyBuilder<T>
которого существует метод расширенияHasColumnName()
.builder.HasKey(...)
(который используется для указания основного ключа для сущности) возвращает объект типаKeyBuilder
. И для этого типа вы не можете вызватьHasColumnName()
😥3. Они имеют разное назначение (настраивают разные вещи).
HasKey
заключается в том, чтобы указать, какое свойство объекта является PK. Имя столбца свойства PK (или любого другого) настраивается черезProperty(...).HasColumnName(...)
. т. е. вам нужноHasKey(e => e.Id)
(хотя это избыточно, потому что имя свойстваId
по соглашению предполагается PK, поэтому вы можете пропустить его) плюсProperty(e => e.Id).HasColumnName("PK_EntityName")
🙂4. ООООО!!!!!!! Sweeeeeeet! Большое вам спасибо за просвещение!!!