相互

2012-02-21 52 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