私のプロジェクトには、MovieとActorという2つの異なるモデルがあります。ムービーにはアクターのリストがあり、アクターにはムービーのリストがあります。私がやりたいことは映画を与えている、俳優の全てを取得し、各俳優のために彼らの映画を調べるに出演Entity Frameworkのリストから値を取得
をので、情報を得るために、私が使用します。
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; }
}
EDIT:これは間違っているかもしれというのが私の注意に来て、問題の原因であるしています。
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は指定されたムービーのキーです。 –