与LINQ一起使用的OrderBy在DOcumentDb中不返回任何行
我一直在尝试在LINQ中使用OrderBy,我更改了几个字段,但当我的文档存在于集合中时,它总是返回null(无行)。 这是我的简单问题-与LINQ一起使用的OrderBy在DOcumentDb中不返回任何行,linq,sql-order-by,azure-cosmosdb,Linq,Sql Order By,Azure Cosmosdb,我一直在尝试在LINQ中使用OrderBy,我更改了几个字段,但当我的文档存在于集合中时,它总是返回null(无行)。 这是我的简单问题- var rests = _client.CreateDocumentQuery<Restraunt>(_collectionUri) .OrderBy(x => x.RestName); var rests=\u client.CreateDocumentQuery(\u
var rests = _client.CreateDocumentQuery<Restraunt>(_collectionUri)
.OrderBy(x => x.RestName);
var rests=\u client.CreateDocumentQuery(\u collectionUri)
.OrderBy(x=>x.RestName);
您必须创建一个索引策略,在order by中使用的属性类型上创建一个范围索引(这里我假设一个字符串)
如果使用默认策略,order by将不返回任何结果
您需要这样的排序策略:
restrauntsCollection.IndexingPolicy.IncludedPaths.Add(
new IncludedPath {
Path = "/RestName/?",
Indexes = new Collection<Index> {
new RangeIndex(DataType.String) { Precision = -1 } }
});
restrauntsCollection.IndexingPolicy.includedpath.Add(
新IncludedPath{
Path=“/RestName/?”,
索引=新集合{
新的RangeIndex(DataType.String){Precision=-1}
});
有关更多信息,请参阅本页:
希望这有帮助谢谢你的帮助,我添加了上面的代码,现在它可以处理所有整数,但仍然不能处理字符串。它返回文档中的数字,但当我尝试字符串字段时,它什么也不返回。好吧,也许你必须调整代码,而不仅仅是在中使用它(因为我不知道你的项目),但我真的认为您的解决方案是正确配置索引策略:)谢谢您的帮助@Julien有没有办法检查默认情况下正在实施的当前索引策略?我的意思是,我可以在控制台中查看哪些路径包含哪些路径不包含?不客气!很乐意提供帮助:)我认为没有特定的工具来检查索引策略,但我认为您可以使用.NET SDK在配置策略时浏览策略。