【发布时间】:2019-05-26 15:55:22
【问题描述】:
我无法从 DocumentDB 中按 ID 读取单个文档。我正在构建应用程序,但我遇到了 this one 这样的确切问题。我不明白我错过了什么。假设我有用户集合,我的分区键有 /UserId,我无法读取文档,我总是收到“找不到资源”。这很令人困惑,因为根据 Microsoft 的文档,我只能将 Uri 提供给 ReadDocumentAsync 方法,但是这样做我会得到错误的分区键。我理解分区键,但我很难理解它们是如何连接到文档的。例如,我的分区键是/UserId,它是一个路径,对于方法ReadDocumentAsync,我实际上必须提供分区键的值。我很难理解这个价值是什么。
我尝试使用 c# 代码创建文档并使用系统创建的 ID (GUID) 检索相同的文档,但它不起作用...这听起来简单而基本,但有人可以指出我哪里错了吗?或者向我展示我可以使用的 C# .NET Core 代码、示例集合、示例文档和示例代码的参考。 Microsoft 的文档/示例代码对我不起作用。
我的代码如下所示:
documentId = "1c230b2d-1e37-9e02-d3a0-10364a188487";
collectionId = "Users";
RequestOptions options = new RequestOptions();
options.PartitionKey = new PartitionKey("201801-M");
var document = await _serverConnection.ReadDocumentAsync(UriFactory.CreateDocumentUri(databaseId, collectionId, documentId),options);
return document;
我的数据库如下所示:
我的分区键如下所示:
【问题讨论】:
-
像您链接的示例一样,显示您的代码。
-
@LarsTech 我添加了代码和截图
标签: c# .net-core azure-cosmosdb document-database