Cra*_*aig 2 c# azure azure-cosmosdb
我正在成功连接我的新 Cosmos DB。
private async Task InitialiseDb()
{
client = new CosmosClient(cosmosUrl, cosmosKey);
database = await client.CreateDatabaseIfNotExistsAsync(databaseName);
container = await database.CreateContainerIfNotExistsAsync("MyContainer", "/id");
}
Run Code Online (Sandbox Code Playgroud)
然后,我设法将一个项目填充到我的 Cosmos 实例中。
var response = await container.CreateItemAsync(myDocument);
Run Code Online (Sandbox Code Playgroud)
当登录到 Azure 并查看我的项目时,我看到了该项目。所以就保存下来了。
现在我试图取回该项目,但收到有关 的错误not found。
Microsoft.Azure.Cosmos.CosmosException :响应状态代码不指示成功:NotFound (404);子状态:0;活动ID:e90da49c-510e-4940-a888-9531427a3810;原因:(错误:[“未找到资源。了解更多信息:https://aka.ms/cosmosdb-tsg-not-found”]);
我获取该物品的方法非常简单:
public async Task<MyDto> GetRecord(Guid myId)
{
var data = await container.ReadItemAsync<FlightDoc>(myId.ToString(), new PartitionKey("id"));
return new MyDto
{
Id = Guid.Parse(data.Resource.id)
};
}
Run Code Online (Sandbox Code Playgroud)
我认为我误解了分区及其工作原理。有什么明显不对的地方吗?这是我的数据浏览器的部分屏幕截图:
我正在传递上面 ID 中显示的 ID。
编辑:更好地解释数据。这次飞行,收集了很多样品。一个航班有很多样本...每个样本都有一个 ID。但我正在努力带回 Flgith 和样本。
刚刚注意到代码,需要在代码中传递分区键值而不是分区键
var data = await container.ReadItemAsync<FlightDoc>(myId.ToString(), new PartitionKey(myId.ToString()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3787 次 |
| 最近记录: |