小编Gab*_* P.的帖子

从文档中提取的 PartitionKey 与 CreateItemAsync 标头中指定的不匹配

我在使用 Microsoft.Azure.Cosmos 3.2.0 版时遇到了一些问题,

跑步时

await this.Container.CreateItemAsync<LogEntity>(logEntity, new PartitionKey("anythingIPutHere"));
Run Code Online (Sandbox Code Playgroud)

它抛出

Microsoft.Azure.Cosmos.CosmosException HResult=0x80131500
消息=响应状态代码不表示成功:400 子状态:1001 原因:(消息:{“错误”:[“从文档中提取的分区密钥与标题中指定的不匹配"]}

但如果我把

await this.Container.CreateItemAsync<LogEntity>(logEntity, new PartitionKey(logEntity.Id));
Run Code Online (Sandbox Code Playgroud)

它有效,并且是唯一有效的情况。

我也试过

  • 将分区键的值作为属性放入对象中;
  • 甚至指定了partitionKeyJSON 属性名称但没有成功;

我查看了 Microsoft 站点上的一些指南,似乎您可以将分区键指定为某个字符串,而不必是 id 或使用对象上的属性名称指定;那么为什么会这样呢?

azure-cosmosdb

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

azure-cosmosdb ×1