私はこれらのオブジェクトを持っています:
public class Class
{
public Guid Id {get;set;}
public string Name {get;set;}
public virtual ICollection<Schedule> Schedules{get;set;}
}
public class Schedule
{
public Guid Id {get;set;}
public virtual DayOfTheWeekId {get;set;}
public virtual DayOfTheWeek {get;set;}
public DateTime StartTime {get;set;}
public DateTime EndTime {get;set;}
}
現在のクエリは次のようになりますが、次の例外が発生します。少なくとも 1 つのオブジェクトが IComparable を実装する必要があります。:
Repository
.Get(c => c.Schedules.Any(s => s.DayOfTheWeekTypeId == dayOfTheWeekId))
.OrderBy(e => e.Schedules.OrderBy(s => s.StartDateTime)).ToList()
時間を設定するときは、特定の曜日にクラスを表示する必要があるため、常に同じ日を使用します。そこで、DayOfTheWeek オブジェクトの出番です。これは私が時間を設定する方法です:
var schedule = new Schedule{
StartDateTime = new DateTime(1999,1,1) + new TimeSpan(9, 15, 0),
EndDateTime = new DateTime(1999,1,1) + new TimeSpan(9, 15, 0),
DayOfTheWeekTypeId = 1
}
アップデート:
そう考えると、グループ化したいかも…。