Этот вопрос задавался здесь 4 года назад: EF Mapping to prefix all column names within a table Я надеюсь, что в эти дни лучше работать.Добавить название столбца в EF6 FluentAPI
Я использую API EF6 Fluent, что я назову Код первым без миграции. У меня есть Pocos для моих моделей, и большинство моих имен столбцов базы данных определяются как [SingularTableName]Field
(например, колонка CustomerAddress дб сопоставлена Адрес поле Клиенты POCO)
Таблица:
CREATE TABLE dbo.Customers (
-- ID, timestamps, etc.
CustomerName NVARCHAR(50),
CustomerAddress NVARCHAR(50)
-- etc.
);
модели :
public class Customer
{
// id, timestamp, etc
public string Name {get;set;}
public string Address {get;set;}
}
ModelBuilder:
modelBuilder<Customer>()
.Property(x => x.Name).HasColumnName("CustomerName");
modelBuilder<Customer>()
.Property(x => x.Address).HasColumnName("CustomerAddress");
Цель:
То, что я бы очень хотел, чтобы быть в состоянии сказать что-то подобное для FluentAPI:
modelBuilder<Customer>().ColumnPrefix("Customer");
// handle only unconventional field names here
// instead of having to map out column names for every column
Спасибо. Я быстро ее снял, но позже придется прорыть. Вопрос: Я не использую модель EDMX, просто POCOs и текущую конфигурацию API с инициализацией db. Является ли это все еще применимым без моделей EDMX (я спрашиваю, потому что я вижу EdmProperty, с которым я не знаком). – jleach
Более того, он может * использоваться только * с кодовым первым :) Но в фоновом режиме EF всегда создает EDM (Entity Data Model), отсюда и название EdmProperty. –
Отлично. Это выглядит великолепно - я на самом деле не ожидал ответа на этот вопрос, поэтому я очень рад его видеть! – jleach