1) У меня есть коллекция Cosmos DB с около 500 тыс. Документов, которая разделена свойством "SITEID". В параметрах запроса запроса можно передать только одно значение ключа раздела. В моем случае у меня есть запросы, где необходимо выполнить SITEID в (1,2,3,4), где SiteID - это ключ раздела.
Например, мой SP выглядит следующим образом:
SELECT * FROM c WHERE c.SITEID IN
("SiteId1","SiteId2","SiteId3","SiteId4","SiteId5")
AND c.STATUS IN ("Status1","Status2","Status3","Status4")
Я звоню вышеуказанному провайдеру, используя приведенный ниже код API SQL.
await client.ExecuteStoredProcedureAsync<string>(UriFactory.CreateStoredProcedureUri("DBName", "CollectionName", "Sample"),new RequestOptions { PartitionKey = new PartitionKey("SiteId1") })
В приведенном выше коде API SQL свойство PartitionKey поддерживает только значение Single. Где мне нужно передать несколько значений раздела. Есть ли другие варианты сделать это?
2) Свойство «EnableCrossPartitionQuery» доступно только в FeedOptions, но не в классе «Параметры запроса». Client.ExecuteStoredProcedureAsync поддерживает только параметр RequestOptions, но не FeedOptions. Теперь мне нужно выполнить хранимую процедуру сразу и по всем разделам. Есть ли другие варианты для передачи EnableCrossPartitionQuery в методе ExecuteStoredProcedureAsync.
например)
client.CreateDocumentQuery<Doc>(UriFactory.CreateDocumentCollectionUri("DBName", "CollectionName"), "select * from c", new FeedOptions { EnableCrossPartitionQuery = true }).ToList()
await client.ExecuteStoredProcedureAsync<string>(UriFactory.CreateStoredProcedureUri("DBName", "CollectionName", "Sample"),new RequestOptions { PartitionKey = new PartitionKey("WGC") })