【发布时间】:2011-11-11 12:48:18
【问题描述】:
我正在尝试制定一个 LINQ 查询以从列表中提取项目,该列表包含一个子嵌套列表 - 我需要查询一个项目,然后在我返回的所有记录的最终排序中使用结果项目查询。
父级是List(Of MediaItems)——类结构如下:
MediaItems
.ID (int)
.Src (string)
.Advert (bool)
.AdOptions As List(Of AdvertOptions)
.Counter (int)
AdvertOptions class consists of:
.Age (int)
.Gender (int)
.Priority (int)
我想查询任何符合以下条件的 MediaItem:
.Advert = true
.Age = x (paramter in calling function)
.Gender = y (paramter in calling function)
为此,我使用以下 LINQ 查询:(年龄和性别是函数参数)
Where(Function(s) s.Advert And s.AdOptions.Any(Function(a) a.Gender = Gender And a.Age = Age))
我现在需要根据两个排序级别对结果进行排序:
AdOptions.Priority(降序),然后按Counter升序排序
这是我失败的尝试:
Where(Function(s) s.Advert And s.AdOptions.Any(Function(a) a.Gender = Gender And a.Age = Age)).OrderBy(Function(a) From p1 In a.AdOptions Where p1.Gender = Gender And p1.Age = Age Select p1.Priority).ThenByDescending(Function(s) s.Counter)
我的尝试不起作用,我收到以下错误:
至少一个对象必须实现 IComparable
任何人都知道需要做什么才能实现我的目标吗?
本
【问题讨论】:
标签: vb.net linq sql-order-by