RavenDB按Range字段排序

时间:2014-02-03 14:35:39

标签: ravendb

我一直在使用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字段。为什么呢?

1 个答案:

答案 0 :(得分:1)

  • 删除以Indexes.Add开头的行。你不需要这样做。

  • 使用此语法代替IndexSortOptions

    Sort(x=> x.Freight, SortOptions.Double);
    
  • 确保您的Freight字段确实是Order课程中定义的双倍字段。