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

创建文档不起作用-C#DocumentDB/CosmosDB,c#,azure,azure-cosmosdb,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(); v

我认为我走的是正确的道路,但我的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);

}

还想指出,目前我的收藏中没有名为“name”和“address”的列。据我所知,它们应该是动态创建的。请告诉我你做错了什么

请参见上一条语句,您使用的是c#Async方法,不需要等待

使用
wait client.createDocumentSync(collection.SelfLink,document1Definition)或您的代码将在文档创建完成之前退出

请注意,您的方法应该更改为
公共异步任务methodname()
,您将看到VS显示的相关提示

给你一些参考资料


如果我添加wait,网页将继续加载。执行没有完成,也没有抛出任何错误。@ZhrezPain您能描述一下如何在web应用程序中调用此方法(或显示一些相关上下文)吗?您的代码在控制台应用程序中工作。从另一方面来说,它可能值得一看。它以更整洁的方式支持所有C#SDK功能。您只需执行一个
wait store.AddAsync(document1Definition)
就可以了。免责声明,我创建了这个库。我只是从本地的帖子中运行了代码(我只在
CreateDocumentSync
的末尾添加了一个
.GetAwaiter().GetResult()
(这不是你应该做的,你应该使用await,但无论如何),它就像一个符咒一样工作。难道你使用的是只读密钥吗?