web-dev-qa-db-ja.com

.NET-c#-クロスパーティションクエリが必要ですが、DocumentDBデータアクセスのトラブルを無効にします

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();に次のエラーを表示しています

{「クロスパーティションクエリが必要ですが、無効です。x-ms-documentdb-query-enablecrosspartitionをtrueに設定するか、x-ms-documentdb-partitionkeyを指定するか、クエリを修正してこの例外を回避してください。\ r\nActivityId:xxxxxx-xxxx -xxx-xxx-xxxxxxx "}

助けてください...

19
Prasanth V M

パラメータとしてCreateDocumentQueryオブジェクトとともにFeedOptionsメソッドを使用する必要があります。このクラスにはx-ms-documentdb-query-enablecrosspartitionEnableCrossPartitionQueryと呼ばれます。

リンクをたどってください https://msdn.Microsoft.com/library/en-us/Dn850285.aspx For REST https:// docs。 Microsoft.com/en-us/rest/api/documentdb/querying-documentdb-resources-using-the-rest-api

例:

あなたが持っている必要があります

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