我编写了以下代码来从DocumentDB中获取记录

private static void QueryDocuments1(DocumentClient client)
{

    IQueryable<SearchInput> queryable =
client.CreateDocumentQuery<SearchInput>(UriFactory.CreateDocumentCollectionUri(DocumentDBName, DocumentDBCollectionName))
        .Where(x => x.Receiver == "8907180");
    List<SearchInput> posts = queryable.ToList();
}

它在代码行List<SearchInput> posts = queryable.ToList();上显示以下错误

{"跨分区查询是必需的,但已禁用.请设置

请帮帮我.

推荐答案

您应该使用带有FeedOptions对象的CreateDocumentQuery方法作为参数,这个类有一个名为EnableCrossPartitionQueryx-ms-documentdb-query-enablecrosspartition属性.

请点击链接https://msdn.microsoft.com/library/en-us/Dn850285.aspx

例子:

你应该

 var option = new FeedOptions { EnableCrossPartitionQuery = true };
 IQueryable<SearchInput> queryable = client.CreateDocumentQuery<SearchInput>
 (UriFactory.CreateDocumentCollectionUri(DocumentDBName, 
 DocumentDBCollectionName), option ) .Where(x => x.Receiver == "8907180");

Asp.net相关问答推荐

在每个对象上设置 ClientIDMode = Static 是否有任何缺点(在母版页的 maincontent 上设置)

Linq 将复杂类型聚合成一个字符串

jquery 1.9.0 和 modernizr 无法使用 ASP.NET Web 优化框架进行缩小

SqlBulkCopy 超时

解析器错误消息:文件/TestSite/Default.aspx.cs不存在

未知的网络方法.参数名称:methodName

Response.Redirect 使用 ~ 路径

免费的 ASP.Net 和/或 CSS 主题

ASP.NET 中的 <% %>(嵌入式代码块)

ASP.Net 自定义客户端验证

尽管安装了 AspNetCoreModule,但在 IIS 中运行 ASP.NET Core 应用程序时出现 0x8007000d 错误 500.19

ASP .NET Button 事件处理程序不会在第一次单击时触发,而是在 PostBack 后的第二次单击时触发

为在 ASP.NET Web API 中使用 User.Identity.Name 的方法编写单元测试

简单的 LINQ 和列表错误:WhereListIterator`1[Task]' to type 'System.Collections.Generic.List`1[Task]'

如何将我的 Autofac 容器插入 ASP. NET 身份 2.1

使用 NLog 在 ASP.NET Web API 2.1 中进行全局异常处理?

IIS 是否执行非法字符替换?如果是这样,如何阻止它?

中继器中的中继器

Windows 身份验证在本地 IIS 7.5 上不起作用.错误 401.1

.Net 上是否有 URL 验证器?