实体框架映射3个表,彼此之间的关系

Gaa*_*aRa 0 c# entity-framework relationship sql-server-ce

这是我的问题:我的数据库中有3个表

  1. 电影(电影列表)

    • ID
    • OriginalTitle ......
  2. 类型(所有类型的表格)

    • ID
    • 名称
  3. RelatedGenres(那些与特定电影相似并且指向特定类型的类型,因为电影可以有超过1种类型)

    • ID
    • MovieID
    • GenreID

关系如下:

Movies.ID - > RelatedGenres.MovieID - > Genres.ID

我有一个模型与assosiations(导航属性). 我得到了什么:

class Movie
{
   public int ID { get; set; }
   public string OriginalTitle { get; set; }
   public ObjectCollection<RelatedGenre> RelatedGenres { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

哪里

class RelatedGenre
{
   public int ID { get; set; }
   public int MovieID { get; set; }
   public ObjectCollection<Genre> Genres { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是:

class Movie
{
   public int ID { get; set; }
   public string OriginalTitle { get; set; }
   public ObjectCollection<Genre> Genres { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我想从这个RelatedGenres数组中跳过数据并获得具体类型的数组......

我怎么能得到这个?在此先感谢=)

Era*_*nga 5

您需要删除表格的第二IDRelatedGenres.多对多关系的连接表应仅包含参与实体的密钥.

EF将自动为最终代码示例中显示的关系建模.

  • 只要确保你将`{MovieID,GenreID}`作为`RelatedGenres`表的主键,否则你的结构将允许重复的关联(在这种情况下不是_that_有用). (2认同)