C# LINQ:分组并加入

C# LINQ:分组并加入,c#,linq,C#,Linq,我有两种型号: public partial class Movie { public Movie() { TimeTables = new HashSet<TimeTable>(); } [Key] public int MovieId { get; set; } public string MovieName { get; set; } public int MovieGenre { get; set; }

我有两种型号:

public partial class Movie
{
    public Movie()
    {
        TimeTables = new HashSet<TimeTable>();
    }

    [Key]
    public int MovieId { get; set; }
    public string MovieName { get; set; }
    public int MovieGenre { get; set; }
    public string MoviePicture { get; set; }
    public string MovieDescription { get; set; }
    public string MovieShortText { get; set; }
    public bool? MovieIs3d { get; set; }
    public bool? MovieIsImax { get; set; }
    public int MovieLanguage { get; set; }
    public bool? MovieSubtitled { get; set; }
    public int? MovieMinimalAge { get; set; }
    public bool? MovieHasDrugs { get; set; }
    public bool? MovieHasViolence { get; set; }
    public bool? MovieHasSex { get; set; }
    public bool? MovieHasSwearing { get; set; }
    public bool? MovieIsScary { get; set; }
    public bool? MovieHasDiscrimination { get; set; }
    public string MovieTrailer { get; set; }
    public int MovieLength { get; set; }
    public int? Genre_GenreId { get; set; }
    public int? Language_LanguageId { get; set; }
    public virtual Genre Genre { get; set; }
    public virtual Language Language { get; set; }
    public virtual ICollection<TimeTable> TimeTables { get; set; }
}

为什么不先从电影开始,按时间表过滤:

var times = timetablerepo.Movies
            .Where(m => m.TimeTables.Any(t => t.StartDate.Date == <yourdate>));
var times=timetablerepo.Movies
其中(m=>m.TimeTables.Any(t=>t.StartDate.Date==);

这些答案对您有帮助吗?
var times2 =
            (from s in timetablerepo.TimeTables
             orderby s.StartTime.TimeOfDay
             where s.StartTime.Date == datetime.Date
             select s).Distinct().ToList();
var times = timetablerepo.Movies
            .Where(m => m.TimeTables.Any(t => t.StartDate.Date == <yourdate>));