创建文档不起作用-C#DocumentDB / CosmosDB

时间:2018-07-30 17:32:00

标签: c# azure azure-cosmosdb

我认为我走了正确的路,但是我的C#代码未在Azure CosmosDB中创建文档。 下面是我的documentdb代码:

using (var client = new DocumentClient(new Uri(endpoint), authkey))
{
    Database database = client.CreateDatabaseQuery("SELECT * FROM c WHERE c.id = 'db'").AsEnumerable().First();
    var query = new SqlQuerySpec
    {
        QueryText = "SELECT * FROM c WHERE c.id = @id",
        Parameters = new Microsoft.Azure.Documents.SqlParameterCollection { new Microsoft.Azure.Documents.SqlParameter { Name = "@id", Value = collectionId }
    }
};

DocumentCollection collection = client.CreateDocumentCollectionQuery(database.SelfLink,query).AsEnumerable().First();

dynamic document1Definition = new
{
    name = "Admin",
    address = 1,
};

var result = client.CreateDocumentAsync(collection.SelfLink, document1Definition);

}

也要指出,当前我的收藏集中没有没有名为“名称”和“地址”的列。因此,据我所知,它们是动态创建的。请让我知道你在做什么错?

1 个答案:

答案 0 :(得分:3)

请参阅最后一条语句,您正在使用c#异步方法而没有等待。

使用await client.CreateDocumentAsync(collection.SelfLink, document1Definition);,否则您的代码将在文档创建完成之前退出。

请注意,您的方法应更改为public async Task methodname(),您将看到VS显示相关提示。

一些参考资料给你