.NET - c# - Cross partition query is required but disabled trouble on DocumentDB data access
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");
Prasanth V M
Lazy programmer :) Enthusiastic, loves to work during travel and travel during work.
Updated on June 03, 2022Comments
-
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 almost 7 yearsHi, what about adding new FeedOptions { EnableCrossPartitionQuery = true }?
-
Oleksii almost 7 yearsExactly, 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");