我有这些对象:按子集合的子属性对LINQ查询进行排序?
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;}
}
我当前的查询看起来是这样,但我得到这个异常:至少一个对象必须实现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
}
更新:
想到这里,我想我可能要分组......
Linq的“Group By”示例位于:http://code.msdn.microsoft.com/LINQ-to-DataSets -Grouping-c62703ea –