Короче говоря, хранимая процедура в cosmosDB возвращает 2 при выполнении внутри портала и возвращает 0 при вызове из ExecuteStoredProcedureAsync()
в моем c# консольном приложении. Правильный ответ: 2
Вот хранимая процедура:
JS:
function countItems() {
var context = getContext();
var collection = context.getCollection();
var collectionLink = collection.getSelfLink();
var response = context.getResponse();
var query = "SELECT * FROM c";
var isAccepted = collection.queryDocuments(
collectionLink,
query,
function(err, documents, responseOptions) {
if (err) {
throw err;
}
response.setBody(documents.length);
}
);
}
Когда я запускаю это с портала azure, он возвращает правильный результат: 2.
/////////////////////
Вот C# звонок:
C#
private static async Task ExecuteStoredProc(string spId, CosmosContext cosmosContext)
{
using (var client = new CosmosClient(cosmosContext.Endpoint, cosmosContext.MasterKey))
{
var container = client.GetContainer(cosmosContext.DbId, cosmosContext.ContainerId);
var scripts = container.Scripts;
var pk = new PartitionKey(cosmosContext.DbId);
var result = await scripts.ExecuteStoredProcedureAsync<string>(spId, pk, null);
var message = result.Resource;
Console.WriteLine(message);
}
}
Когда я запускаю это из консольного приложения C#, оно возвращает 0
В чем дело?