Невозможно обновить документ в Azure CosmosDB с помощью microsoft.azure.documentdb.core - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь обновить документ в коллекции Azure CosmosDB, используя ReplaceDocumentAsyc метод, предоставляемый microsoft.azure.documentdb.core . Я получаю ответ 200 при вызове ReplaceDocumentAsyc , но документ в самой коллекции не обновляется. Вот краткая настройка (соответствующая часть кода) для справки.

    private DocumentClient Client
    {
        get
        {
            if (_client == null)
            {
                _client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
            }

            return _client;
        }
    }

    Client.ReplaceDocumentAsync(documentSelfLink, doc).ContinueWith(response =>
    {
        return new QueryResponse { Success = response.Result.StatusCode == HttpStatusCode.OK, LastChanged = lastChanged };
    });

Код кажется мне подходящим, и я считаю, что он мог обновить коллекцию раньше. Кто-нибудь еще сталкивался с подобной проблемой?

1 Ответ

0 голосов
/ 06 сентября 2018

Пожалуйста, обратитесь к моему рабочему коду:

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using System;

namespace JayTestDocumentDB
{
    class Program
    {
        private static DocumentClient client;
        private static string EndpointUrl = "https://***.documents.azure.com:443/";
        private static string AuthorizationKey = "***";
        private static string databaseId = "db";
        private static string collectionId = "coll";

        static void Main(string[] args)
        {
            client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
            var uri = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);

            var options = new FeedOptions
            {
                MaxItemCount = 100
            };      
            FeedResponse<Document> doc = client.CreateDocumentQuery<Document>(uri, options).AsDocumentQuery().ExecuteNextAsync<Document>().Result;

            foreach (Document d in doc)
            {
                Console.WriteLine(d);
                d.SetPropertyValue("name","jay");

                client.ReplaceDocumentAsync(d.SelfLink, d).ContinueWith(response =>
                {
                    Console.WriteLine(response.Result.StatusCode);
                    //return new QueryResponse { Success = response.Result.StatusCode == HttpStatusCode.OK, LastChanged = lastChanged };
                });
                break;
            }
            Console.ReadLine();
        }
    }                    
}

Моя версия пакета microsoft.azure.documentdb.core равна 2.0.0-preview2.

Любая проблема, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...