繁体   English   中英

DocumentDB从不创建文档

[英]DocumentDB Never Creates Document

不知道我在这里做错了什么,但是我试图在存储数据库my-db my-documents中插入一个文档,但这没有发生。

我创建这样的文档客户端-

  _endpointUri = new Uri(Properties.Settings.Default.DocumentDBEndpoint);
  _privateKey = Properties.Settings.Default.DocumentDBKey;
  _databaseName = Properties.Settings.Default.DocumentDBDatabase;
  _collectionName = collectionName;
  _collectionUri = UriFactory.CreateDocumentCollectionUri(_databaseName, _collectionName);

  _documentClient = new DocumentClient(_endpointUri, _privateKey);

然后,我尝试将文档插入集合中。

public async Task Set(T document)
{
  await _documentClient.CreateDocumentAsync(_collectionUri.ToString(), document);
}

我尝试传递_collectionUri以及toString ,它们都做相同的事情。 如果我逐步通过调试器,则该集合uri的toString看起来像-

dbs / my-db / colls / my-documents

我尝试在呼叫中设置.ConfigureAwait(false) ,以及根本不等待它。 当然,当不等待它时,它会跳过行,但没有文档被添加到my-documents集合中。

我不确定我是否正在使用CreateDocumentAsync(也尝试过UpsertDocumentAsync ),因为不会引发错误。

鉴于我犯了什么错误,任何人都可以从信息中看到吗?

编辑在与Azure的测试中,我确实选择将DocumentDB与MongoDB Api一起使用。 这可能是相关的。 由于我可以轻松地将其全部销毁,因此我将使用DocumentDB Api重新创建它,并查看是否可以解决问题。

原来这是我认为相同的两个不同问题。

文档未创建-

因此,我最初将其设置为使用MongoDB驱动程序,该驱动程序将我的数据库/集合转储到Azure存储中。 从未创建文档的问题是因为DocumentDB不会将自身存储在Azure存储资源中。 创建新的DocumentDB时,请在“设置”>“集合”>“浏览”下查看是否不存在数据库。 不幸的是,它似乎没有DocumentDB具有桌面数据库管理应用程序,而这需要在azure门户上完成。

因此,问题显然是由于上述原因,我指向的数据库/集合不存在。

等待永不返回-

显然,如果您要等待某些事情,则需要一直等待整个调用堆栈。

(async) POST:Api (awaits) -> (async) Service:CreateDocument -> (async) Repository:Set (awaits) -> (async) DocumentClient:CreateDocumentAsync

问题是,即使我的服务是异步的,它也没有等待Repository:Set的调用。 等待链中的所有内容,使我可以逐步完成并收到服务器的响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM