RavenDB OrderBy

在我的C#应用​​程序中,我有一个对象集合,其int Order属性范围从1到n

当我喜欢这样的时候:

 var listings = session.Query().Where(x => !x.IsDeleted && x.CategoryId == category.Id && x.WorkflowStatus == WorkflowStatus.Published).OrderBy(x => x.Order); 

我得到了一系列列表,但没有按正确的顺序100%。 按顺序,顺序如下:

 0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 28, 29, 3, 30, 31, 32, 33, 4 .... 

知道为什么OrderBy没有完全按照它应该做的事情吗?

如果使用索引,则需要为Order属性设置sortoptions。 来自http://ravendb.net/docs/client-api/querying/static-indexes/customizing-results-order

另一方面,数值存储为文本,因此要求用户明确指定所使用的数字类型是什么,以便强制执行正确的排序机制。 通过在索引定义中的SortOptions中声明所需的排序设置,这很容易完成:

 Sort(x => x.Order, SortOptions.Int); 

上面列出的索引将允许按用户年龄(1,2,3,11等)的值进行排序。 如果我们不指定此选项,则它将按词法排序(1,11,2,3等)。 默认的SortOptions值是String。 适用于所有数字类型的值(字节,双精度,浮点数,整数,长整数和短整数)。