在 Azure CosmosDb PatchItemAsync 中获取 "One of the specified inputs is invalid"

Getting "One of the specified inputs is invalid" in Azure CosmosDb PatchItemAsync

下面是我的代码:

List<PatchOperation> patchOperations = new List<PatchOperation>();
            patchOperations.Add(PatchOperation.Replace("/endpointId", 100));
string id = "id1";
PartitionKey partitionKey = new PartitionKey("partitionkey1");

await _container.PatchItemAsync<Watermark>(id,
    partitionKey,
    patchOperations);

我期待 endpointId 属性 替换为 100。

但是,我遇到了消息:{"Errors":["One of the specified inputs is invalid"]}

我可以检查我遗漏了哪个部分,还是必须等待为我的 cosmos 数据库启用补丁私人预览功能?

即使错误显示 "One of the specified inputs is invalid",您应该会看到状态代码 400,它表示 Bad Request。因此需要为您的帐户启用私人预览功能。

您还可以通过在启动模拟器时添加 EnablePreview 来启用模拟器补丁,

.\CosmosDB.Emulator.exe /EnablePreview

为了启用它,您可以使用此 form 进行注册,这应该会在 15-20 分钟内完成。如果这不起作用,请告诉我

对于登陆此处寻找 Cosmos 可能对其他请求类型响应 One of the specified inputs is invalid 的原因的任何其他人,您可能需要将 Id 属性 重命名为 id小写或添加属性:

[JsonProperty("id")]
public string Id { get; set; }

cosmos db 中的 id 属性区分大小写。在这种情况下,尝试将您的 id getter setter 替换为“id”。