Cosmos DB 返回 404
Cosmos DB returning 404
我正在成功连接我的新 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 not
indicate success: NotFound (404); Substatus: 0; ActivityId:
e90da49c-510e-4940-a888-9531427a3810; Reason: ( Errors : [ "Resource
Not 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)
};
}
我想我误解了分区及其工作原理。有什么明显的错误吗?这是我的数据浏览器的部分屏幕截图:
我正在传递上面ID中显示的ID。
编辑:更好地解释数据。 The Flight,收集了很多样本。一个航班有很多样本……每个样本都有一个 Id。但我正试图用样品带回 Flgith。
刚刚注意到代码,需要在代码中传递分区键值而不是分区键
var data = await container.ReadItemAsync<FlightDoc>(myId.ToString(), new PartitionKey(myId.ToString()));
我正在成功连接我的新 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 not indicate success: NotFound (404); Substatus: 0; ActivityId: e90da49c-510e-4940-a888-9531427a3810; Reason: ( Errors : [ "Resource Not 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)
};
}
我想我误解了分区及其工作原理。有什么明显的错误吗?这是我的数据浏览器的部分屏幕截图:
我正在传递上面ID中显示的ID。
编辑:更好地解释数据。 The Flight,收集了很多样本。一个航班有很多样本……每个样本都有一个 Id。但我正试图用样品带回 Flgith。
刚刚注意到代码,需要在代码中传递分区键值而不是分区键
var data = await container.ReadItemAsync<FlightDoc>(myId.ToString(), new PartitionKey(myId.ToString()));