2014-11-02 119 views
0

嗨我試圖在MVC中創建一個數據庫,其中包含與它們相關聯的電視節目和演員列表。 每個電視節目都可以有多個演員,演員可以出現在許多電視節目中。每個演員也有一個演員的名字,他們出現在每個節目中。這是我的模型。多對多關係代碼優先

 public class TvShow 
{ 
    public int ShowId { get; set; } 
    public string Name { get; set; } 
    public List<Actor> cast { get; set; } 

} 

public class Actor 
{ 
    public int ActorId { get; set; } 
    public string Name { get; set; } 
    public List<TvShow> shows { get; set; } 
} 

public class Cast 
{ 
    public int ShowId { get; set; } 
    public int ActorId { get; set; } 
    public string CastName { get; set; } 
} 

public class TvContext : DbContext 
{ 
    public DbSet<TvShow> Shows { get; set; } 
    public DbSet<Actor> Actors { get; set; } 
} 

我查詢數據庫並運行應用程序來爲我創建數據庫,但CastName屬性沒有出現在我的鏈接器表中。任何幫助將不勝感激。

回答

1

EF如何知道你想使用實體Cast作爲M:N關係表?

當你想在多對多關係中有一個附加屬性時,你必須鏈接TvShow和Actor實體的實體Cast。因此,該模型可以是這樣的:

public class TvShow 
{ 
    public int ShowId { get; set; } 
    public string Name { get; set; } 
    public List<Cast> Casts { get; set; } 

} 

public class Actor 
{ 
    public int ActorId { get; set; } 
    public string Name { get; set; } 
    public List<Cast> Shows { get; set; } 
} 

public class Cast 
{  
    public string CastName { get; set; } 
    public TvShow TwShow { get; set; } 
    public Actor Actor { get; set; } 
} 

,你可以得到的演員名單給出TvShow與下面的查詢:

twShow.Casts.Select(c => c.Actor); 
相關問題