Снять префикс таблицы базы данных при первом использовании кода ef6 из существующей базы данных

У меня в базе данных много таблиц с префиксом "tbl", например tblCustomer, при создании модели с помощью инструмента EF6 (Добавить->Новый элемент->Данные->Модель данных сущности ADO.NET) и выбрав Code First from database, EF создаст все классы с префиксом tbl. отредактировать шаблоны генерации, чтобы убрать этот префикс?

Роуэн Миллер объяснил, как редактировать эти шаблоны генерации, в этом посте Настройка функции "Сначала реконструировать код" в инструментах EF Power Tools, но не знаю, как это сделать с помощью новых консолидированных инструментов в EF 6


person ddieppa    schedule 27.03.2014    source источник
comment
Помните... если каждая таблица в вашей базе данных начинается с tbl, это то же самое, как если бы ни одна таблица не начиналась с tbl   -  person crthompson    schedule 28.03.2014
comment
@paqogomez определенно, но не все таблицы имеют префикс, и код вообще не читается (я имею в виду, что клиент более читабелен, чем tblCustomer, я думаю, что это естественный путь), и в конечном итоге мы можем использовать эту модель с другой базой данных   -  person ddieppa    schedule 28.03.2014


Ответы (1)


Возможно, вам будет проще просто изменить имена классов и использовать DataAnnotations (ищите раздел под названием «Таблица и столбец»), чтобы сопоставить правильные таблицы после создания первых моделей кода.

using System.ComponentModel.DataAnnotations;

[Table("tblMyModel")]
public class MyModel {
    public int ID {get; set;}
    //etc
}

В качестве альтернативы вы также можете использовать FluentAPI.

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    modelBuilder.Entity<MyModel>()
        .ToTable("tblMyModel");
}

Это, конечно, может быть непрактично для больших табличных структур, но сработает.

Если вы хотите попробовать более продвинутые возможности, предлагаемые EF6, вы можете прочитать Code First. Соглашения.

person Michael Dunlap    schedule 27.03.2014
comment
в конце концов, это то, что я делал до сих пор, но когда у вас есть около 200 таблиц, это не так просто, потому что это не только имя класса, оно есть во всех файлах конфигурации, где вы ссылаетесь на этот класс, и во всех отношениях между объектами - person ddieppa; 28.03.2014