リレーションが下のような感じの場合。
public class Anime { public int AnimeId { get; set; } public int Year { get; set; } public int Quarter { get; set; } public string Title { get; set; } public virtual ICollection<Episode> Episodes { get; set; } } public class Episode { public int EpisodeId { get; set; } public int Sequense { get; set; } public string Title { get; set; } public virtual ICollection<Cast> Casts { get; set; } } public class Cast { public int CastId { get; set; } public string Name { get; set; } }
今期放送している Anime
から Cast
を取得したい場合、以下のようにすればできます。
var anime = context.Anime.AsNoTracking() .Where(w => w.Year == 2016) .Where(w => w.Quarter == 3) .Include(w => w.Episodes.Select(v => v.Cast)) .ToList(); foreach (var cast in anime.Episode.Cast) { Console.WriteLine(cast.Name); }