.NET - c# - Cross partition query is required but disabled trouble on DocumentDB data access

17,104

You should use CreateDocumentQuery method with FeedOptions object as a parameter, this class has a property for x-ms-documentdb-query-enablecrosspartition called EnableCrossPartitionQuery.

Please follow links 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

Example:

you should have

 var option = new FeedOptions { EnableCrossPartitionQuery = true };
 IQueryable<SearchInput> queryable = client.CreateDocumentQuery<SearchInput>
 (UriFactory.CreateDocumentCollectionUri(DocumentDBName, 
 DocumentDBCollectionName), option ) .Where(x => x.Receiver == "8907180");
Share:
17,104
Prasanth V M
Author by

Prasanth V M

Lazy programmer :) Enthusiastic, loves to work during travel and travel during work.

Updated on June 03, 2022

Comments

  • Prasanth V M
    Prasanth V M about 2 years

    I have written the following code to fetch a record from the 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();
    }
    

    And it is showing the following error on the code line List<SearchInput> posts = queryable.ToList();

    {"Cross partition query is required but disabled. Please set x-ms-documentdb-query-enablecrosspartition to true, specify x-ms-documentdb-partitionkey, or revise your query to avoid this exception.\r\nActivityId: xxxxxx-xxxx-xxx-xxx-xxxxxxx"}

    Please help me on it...

  • Prasanth V M
    Prasanth V M almost 7 years
    Hi, what about adding new FeedOptions { EnableCrossPartitionQuery = true }?
  • Oleksii
    Oleksii almost 7 years
    Exactly, you should have var option = new FeedOptions { EnableCrossPartitionQuery = true }; IQueryable<SearchInput> queryable = client.CreateDocumentQuery<SearchInput>(UriFactory.CreateDoc‌​umentCollectionUri(D‌​ocumentDBName, DocumentDBCollectionName), option ) .Where(x => x.Receiver == "8907180");