Премахнете префикса на таблицата на базата данни, когато използвате ef6 код първо от съществуваща база данни

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

Rowan Miller обясни как да редактирате тези шаблони за генериране в тази публикация Персонализиране на „Първо Reverse Engineering Code“ в EF Power Tools, но не знам как да го направя с новите консолидирани инструменти в EF 6


person ddieppa    schedule 27.03.2014    source източник
comment
Запомнете.. ако всяка таблица във вашата база данни започва с tbl, това е същото като ако никоя таблица не започва с tbl   -  person crthompson    schedule 28.03.2014
comment
@paqogomez определено, но не всички таблици имат префикса и кодът изобщо не се чете (имам предвид, че е по-четим Customer от 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