您好我正在尝试在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属性没有出现在我的链接器表中。任何帮助将不胜感激。
答案 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);