Я пытался выяснить, как настроить клиент Cosmos db в .net Web API, но недостаточно далеко.
Я заметил, что при использовании функции CosmosDB ReadItemAsync я всегда получаю ошибку 404 с этим ответом
Со следующим кодом:
public async Task<OkObjectResult> All()
{
var client = CosmosService.GetClient();
var container = client.GetDatabase("Development").GetContainer("Notes");
var result = await container.ReadItemAsync<CosmosNote>("1717482138", new PartitionKey("id"));
return Ok(result);
}
Я также пробовал использовать другую функцию. Я попробовал использовать ReadManyItemsAsync, который на удивление работает по какой-то странной причине!
public async Task<OkObjectResult> All()
{
var client = CosmosService.GetClient();
var container = client.GetDatabase("Development").GetContainer("Notes");
List<(string, PartitionKey)> itemsToFind = new()
{
("1717482138", new PartitionKey("id"))
};
var data = await container.ReadManyItemsAsync<CosmosNote>(itemsToFind);
return Ok(data);
}
Я не понимаю, почему ReadItemAsync не работает, может кто-нибудь помочь?
Спасибо!
Редактировать: Обозреватель данных Cosmos в Azure





В PartitionKey вам нужно использовать значение, а не имя свойства. Если вы измените его на:
var partition = new PartitionKey("1717482138"); //<- value instead of property
var result = await container.ReadItemAsync<CosmosNote>("1717482138", partition);
Это должно работать, если вы используете /id в качестве раздела в контейнере Cosmos.