许多对很多关系代码首先

时间:2014-11-02 20:43:40

标签: asp.net-mvc entity-framework-6

您好我正在尝试在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 个答案:

答案 0 :(得分: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);