我一直在使用RavenDB Northwind数据库,并且无法按照运费排序订单。
我的索引:
Map = orders => from o in orders
select new {
o.Freight
};
IndexSortOptions.Add(x => x.Freight, SortOptions.Double);
Indexes.Add(x => x.Freight, FieldIndexing.NotAnalyzed);
我的查询:
return sess.Query<Order>("Orders/ByFreight")
.OrderByDescending(x => x.Freight)
.Select(x => x.Freight);
它收到以下订单:
[
32.38,
11.61,
65.83,
41.34 ... ]
这显然不正确。在工作室,我可以通过运费定义订单,并且订单很好。但是,如果在工作室中我将范围指定为超过Freight_Range,我会得到相同的结果。在我看来,Raven正在选择Freight_Range字段来排序而不是Freight字段。为什么呢?
答案 0 :(得分:1)
删除以Indexes.Add
开头的行。你不需要这样做。
使用此语法代替IndexSortOptions
:
Sort(x=> x.Freight, SortOptions.Double);
确保您的Freight
字段确实是Order
课程中定义的双倍字段。