我已经定义了我的数据库,现在我正在执行代码优先,创建对象以便它们适合当前的数据库。
我唯一的问题是映射表的名称并不完全与我结合。
我的主要表是"电影"。然后我有一个多对多的演员"和另一个多对多的演奏"类型"。
我的问题是> Actors的映射表名称完全正常。实体与" MovieActors",但是!类型表,实体想要调用" GenreMovies"。
为什么实体想要这个?我怎么能强迫它使用" MovieGenres"?
请记住,我已经创建了数据库,并且不希望实体创建任何表。
答案 0 :(得分:0)
如果您的类名为Genre
,则按照约定Code First假定它将映射到名为Genres
的表。如果不是这种情况,您可以使用Table属性指定表的名称。例如,注释指定表名为GenreMovies
。
[Table("GenreMovies")]
public class Genre
另一个选择是使用Fluent Api。最简单的方法是覆盖上下文中的OnModelCreating
方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Genre>().ToTable("GenreMovies");
}
如果您想更改数据库中该表的名称,建议您学习如何使用Code First Migration