相互

2012-02-21 26 views
0

关系3代表的实体框架映射这里是我的问题: 我有3代表在我的数据库相互

  1. 电影(电影列表)

    • ID
    • OriginalTitle ...
  2. 流派(TA与所有可能的流派)

    • ID
    • 名称竹叶提取
  3. RelatedGenres(那些belog特定影片和指向一个特定的类型,因为电影可以有超过1个流派的流派)

    • ID
    • MovieID
    • 生成报告的eID

的关系是如folows:

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; } 
} 

其中

class RelatedGenre 
{ 
    public int ID { get; set; } 
    public int MovieID { get; set; } 
    public ObjectCollection<Genre> Genres { get; set; } 
} 

我想要什么:

class Movie 
{ 
    public int ID { get; set; } 
    public string OriginalTitle { get; set; } 
    public ObjectCollection<Genre> Genres { get; set; } 
} 

正如你所看到的,我想从这个数组RelatedGenres的跳过数据&只是得到一组具体的流派...

我该如何实现这一目标? 在此先感谢=)

+0

所以你想要将两个表合并成一个实体正确吗?你有麻烦,因为它的集合? – 2012-02-21 14:48:17

+0

这个问题是完全一样的,答案的作品。可能重复的[Entity Framework多对多问题](http://stackoverflow.com/questions/3168016/entity-framework-many-to-many-questions) – 2012-02-21 14:54:23

回答

5

您需要删除RelatedGenres表的ID列。多对多关系的连接表应该只包含参与实体的关键字。

EF将自动建模您在最终代码示例中显示的关系。

+2

只要确保你使'{MovieID,GenreID} ''RelatedGenres'表的主键,或者你的结构将允许重复的关联(在这种情况下这不是有用的)。 – Nuffin 2012-02-21 14:58:04