Как сопоставить имена таблиц и имена столбцов, отличные от модели в методе onmodelcreating в Entity Framework -6?

У меня есть моя база данных с именами таблиц, начинающимися с префикса" tbl "и имен столбцов, таких как" ua_id", которые понятны в контексте проекта, но проблематичны при использовании в модели i.e имена должны быть удобочитаемыми или значимыми(не такими, как ориентировочные имена, определенные в базе данных).

поэтому я хочу отобразить их в моем методе onmodelcreating, но я понятия не имею об этом. Я изучил его в следующем blog:
http://weblogs.asp.net/scottgu/entity-framework-4-code-first-custom-database-schema-mapping но это для EF 4.1, а метод не работает для EF 6.(метод mapsingletype)

Я хочу сопоставить свои таблицы по столбцам с моей моделью, поскольку я не могу изменить имена столбцов. Мне просто нужна более новая версия этого синтаксиса в блоге.

Спасибо.

3 ответов


Если вы сначала используете код, вы можете просто украсить свою модель атрибутом таблицы и столбца и дать ей имена баз данных.

[Table("tbl_Student")]
public class Student
{
    [Column("u_id")]
    public int ID { get; set; }
}

эти атрибуты доступны в системе.ComponentModel.DataAnnotations.Пространство имен схемы


вы можете продолжать следовать внутри OnModelCreating

modelBuilder.Entity<MyModel>()
.Property(e => e.MyColumn).HasColumnName("DBColumn")

и если вы не используете code-first, просто выберите таблицу на диаграмме модели, нажмите F4 (свойства) и измените имя.