【发布时间】:2016-06-13 05:11:30
【问题描述】:
我有一个IQueryable<T> 对象作为搜索结果对象。
我在这个搜索对象上应用过滤和排序。
在调用 GetResults() 之前,我想根据字段的 (Fieldname - Priority) 值之一对结果进行排序。因此,对于IQueryable<T> 对象中的所有项目,我想按优先级字段对它们进行降序排序,因此所有具有该字段值的项目都位于顶部,其余的位于底部。
我有优先级字段的fieldmap 条目。
search.OrderByDescending(i => !string.IsNullOrEmpty(i.GetItem().GetFieldValue("Priority")))
上面的命令不起作用。显然,我不能将 Sitecore 扩展方法与 IQueryable 一起使用?
如果我转换search.ToList()。进行排序,然后将其转换回AsQueryable(),我收到以下错误:
There is no method 'GetResults' on type 'Sitecore.ContentSearch.Linq.QueryableExtensions'
that matches the specified arguments
有没有一种简洁快捷的方法来解决这个问题?
干杯
【问题讨论】:
-
I apply the filtering and sorting on this search object- 您是否按多个字段排序?例如标题和优先级? -
@jammykam - 是的。我首先根据用户选择的标准对它们进行排序 - 例如名称、创建日期等。一旦我得到结果,我需要按优先级字段对它们进行排序。
-
你是分页结果还是得到结果后才能下单?
-
我正在分页结果@dnstommy
-
嗯,好的。下面的结果有效吗?我知道 Lucene 将所有内容都视为字符串。使用 int 很痛苦。
标签: sitecore sitecore7.2