gpt4 book ai didi

c# - Cosmos DB 返回 404

转载 作者:行者123 更新时间:2023-12-02 23:12:47 26 4
gpt4 key购买 nike

我正在成功连接我的新 Cosmos DB。

private async Task InitialiseDb()
{
client = new CosmosClient(cosmosUrl, cosmosKey);
database = await client.CreateDatabaseIfNotExistsAsync(databaseName);
container = await database.CreateContainerIfNotExistsAsync("MyContainer", "/id");
}

然后,我设法将一个项目填充到我的 Cosmos 实例中。

 var response = await container.CreateItemAsync(myDocument);

登录 Azure 并查看我的项目时,我看到了该项目。所以它被存储了。

现在我正在尝试取回该项目,但收到有关 not found 的错误.

Microsoft.Azure.Cosmos.CosmosException : Response status code does notindicate success: NotFound (404); Substatus: 0; ActivityId:e90da49c-510e-4940-a888-9531427a3810; Reason: ( Errors : [ "ResourceNot Found. Learn more: 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)
};

}

我认为我误解了分区及其工作原理。有什么明显不对的地方吗?这是我的数据浏览器的部分屏幕截图:

enter image description here

我正在传递上面 ID 中显示的 ID。

编辑:更好地解释数据。这次飞行,收集了很多 sample 。一个航类有很多样本...每个样本都有一个 ID。但我正在努力带回 Flgith 和样本。

enter image description here

最佳答案

刚刚注意到代码,需要在代码中传递分区键值而不是分区键

var data = await container.ReadItemAsync<FlightDoc>(myId.ToString(), new PartitionKey(myId.ToString()));

关于c# - Cosmos DB 返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69172285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com