Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与LINQ一起使用的OrderBy在DOcumentDb中不返回任何行_Linq_Sql Order By_Azure Cosmosdb - Fatal编程技术网

与LINQ一起使用的OrderBy在DOcumentDb中不返回任何行

与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

我一直在尝试在LINQ中使用OrderBy,我更改了几个字段,但当我的文档存在于集合中时,它总是返回null(无行)。 这是我的简单问题-

        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在配置策略时浏览策略。