如何在 Entity Framework -6 的 onmodelcreating 方法中映射与模型不同的 table 名称和列名称?
How to map table names and column name different from model in onmodelcreating method in Entity Framework -6?
我的数据库中的 table 名称以 "tbl" 前缀和列名称开头,例如 "ua_id" 这在项目上下文中是可以理解的,但如果在模型中使用则有问题,即名称应该可读或有意义(不像数据库中定义的指示性名称)。
所以我想在我的 onmodelcreating 方法中映射它们,但我对此一无所知。我在以下博客中研究过它:
http://weblogs.asp.net/scottgu/entity-framework-4-code-first-custom-database-schema-mapping
但这是针对 EF 4.1 的,方法不适用于 EF 6。(mapsingletype 方法)
我想按列将我的 table 映射到我的模型,因为我无法更改列名称。我只想在博客中使用该语法的更新版本。
谢谢。
如果您使用 Code First,您可以简单地使用 Table 和 Column 属性装饰您的模型,并为其指定数据库名称。
[Table("tbl_Student")]
public class Student
{
[Column("u_id")]
public int ID { get; set; }
}
这些属性在 System.ComponentModel.DataAnnotations.Schema 命名空间
中可用
如果您不使用代码优先,只需在模型图中 select 一个 table,按 F4(属性)并更改名称。
你可以在OnModelCreating里面继续关注
modelBuilder.Entity<MyModel>()
.Property(e => e.MyColumn).HasColumnName("DBColumn")
我的数据库中的 table 名称以 "tbl" 前缀和列名称开头,例如 "ua_id" 这在项目上下文中是可以理解的,但如果在模型中使用则有问题,即名称应该可读或有意义(不像数据库中定义的指示性名称)。
所以我想在我的 onmodelcreating 方法中映射它们,但我对此一无所知。我在以下博客中研究过它:
http://weblogs.asp.net/scottgu/entity-framework-4-code-first-custom-database-schema-mapping
但这是针对 EF 4.1 的,方法不适用于 EF 6。(mapsingletype 方法)
我想按列将我的 table 映射到我的模型,因为我无法更改列名称。我只想在博客中使用该语法的更新版本。
谢谢。
如果您使用 Code First,您可以简单地使用 Table 和 Column 属性装饰您的模型,并为其指定数据库名称。
[Table("tbl_Student")]
public class Student
{
[Column("u_id")]
public int ID { get; set; }
}
这些属性在 System.ComponentModel.DataAnnotations.Schema 命名空间
中可用如果您不使用代码优先,只需在模型图中 select 一个 table,按 F4(属性)并更改名称。
你可以在OnModelCreating里面继续关注
modelBuilder.Entity<MyModel>()
.Property(e => e.MyColumn).HasColumnName("DBColumn")