【发布时间】:2020-09-24 13:34:25
【问题描述】:
尝试在使用 C# 的 Windows 10 上从 .NET Core 3.1 控制台应用将项目更新插入 Cosmos DB。
JSON 文档如下所示:
{
"id": "25217f96-d399-4bb7-b8f1-4a7365cca76c",
"title": "my title",
"eventUtc": "2020-09-04T14:16:04+0000" ,
"listOne":
[
{"person1" : "james" , "contributorContact" : "" , "contributorTtype" : "contributor"} ,
{"person2" : "veena" , "contributorContact" : "" , "contributorTtype" : "contributor"}
]
,
"listTwo" :
[
"lorem" , "ipsum" , "dolor"
] ,
"synopsis" : "abcdefghi." }
该文档在容器中不存在,但该容器已与另一个文档一起存在。分区键是“id”。
此代码失败: ...
foreach (var fileOne in Directory.GetFiles(fileLoc))
{
MemoryStream stream = new MemoryStream();
await System.Text.Json.JsonSerializer.SerializeAsync(stream, File.ReadAllText(fileOne));
var response = await cosmosContainer.UpsertItemStreamAsync(stream, new PartitionKey("id"));
}
文件不多,因此需要单独更新它们。
错误信息是:
响应状态码不表示成功:BadRequest(400); 子状态:0;活动ID:9c545c05-102f-4ed5-9c6c-e5092ae1671b; 原因:(消息:{“错误”:[“指定的输入之一是 无效"]}....
代码中的错误在哪里?基于https://github.com/Azure/azure-cosmos-dotnet-v3/issues/1463,我认为这可行。
谢谢。
【问题讨论】:
标签: .net-core azure-cosmosdb azure-cosmosdb-sqlapi