我的项目中有两种不同的模型:电影和演员。电影有演员列表,演员有电影列表。 。我想要做的就是给出一个电影,让所有的演员,然后对每个演员审查担任他们的电影从实体框架中的列表中检索值
所以,为了得到的信息,我用:
var movie = context.Movies.Include("Cast.ActingCredits").FirstOrDefault(m => m.Key == key);
问题当列表ActingCredits
不为空时,其中没有值。有什么我缺少加载列表中的值? ActingCredits
是ICollection<Movie>
。
public class Actor : ModelBase
{
public ICollection<Movie> ActingCredits { get; set; }
}
public class Movie : ModelBase
{
public string Title { get; set; }
public DateTime Year { get; set; }
public Genre Genre { get; set; }
public int RunTime { get; set; }
public int Sales { get; set; }
public ICollection<Actor> Cast { get; set; }
}
编辑:它已经到了我的注意,这可能是错误的,是问题的原因。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Movie>().HasMany(p => p.Cast).WithMany();
modelBuilder.Entity<Actor>().HasMany(m => m.ActingCredits).WithMany();
}
发布演员和电影类的结构? – Trey
键/ m.Key是什么? – David
关键值在ModelBase类中,它是一个带有[[Key]'属性的int。 Key是我想要获得的电影密钥,m.Key是给定电影的关键。 –