[英]Using existing database and EF code-first, mapping a lookup table to entity
[英]Mapping table name in Entity, when you define Code-First by existing Database
我已经定义了数据库,现在我要做代码优先,创建对象,使它们适合当前数据库。
我唯一的问题是映射表名称与我完全不同意。
我的主要表格是“电影”。 然后,我对“演员”有多对多关系,对“流派”也有多对多关系。
我的问题是> Actors的映射表名称完全正确。.实体同意“ MovieActors”,但是! 在流派表中,实体希望调用“ GenreMovies”。
实体为什么要这个? 以及如何强制它使用“ MovieGenres”?
请记住,我已经创建了数据库,并且不希望实体创建任何表。
如果您的类名为Genre
,则按照惯例Code First假定它将映射到名为Genres
的表。 如果不是这种情况,则可以使用Table属性指定表的名称。 例如,在这里,注释指定表名称为GenreMovies
。
[Table("GenreMovies")]
public class Genre
另一种选择是使用Fluent Api 。 最简单的方法是在Context中重写OnModelCreating
方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Genre>().ToTable("GenreMovies");
}
如果要在数据库中更改该表的名称,建议您学习如何使用“代码优先”迁移
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.