涉及分层分区键时无法插入任何数据

问题描述 投票:0回答:1

当存在分层分区键时,我似乎无法插入任何数据。我不断收到“(提供的分区键与集合中的定义不对应,或者与文档中指定的分区键字段值不匹配。”错误,但它没有意义,因为我提供了正确的键并且文档有这些值

'key'变量是一个包含guid的字符串变量:

                dynamic document = new 
                {
                    Id = key,
                    ObjectName = "PlayerInfo",
                    PlayerID = key,
                    PlayerInfo = "foobarbaz"
                    // other document properties
                };

                string partitionKeyValue = $"/{document.ObjectName}/{document.PlayerID}";

                ItemResponse<dynamic> resp = await container.CreateItemAsync(document, new PartitionKey(partitionKeyValue));
azure azure-cosmosdb azure-cosmosdb-sqlapi
1个回答
2
投票

由于您使用的是分层分区键,因此您需要指定分区键的所有部分。在你的情况下,也许用这样的东西构建你的分区键:

var partitionKey = new PartitionKeyBuilder()
   .Add("PlayerInfo")
   .Add("key")
   .Build();
ItemResponse<dynamic> resp = await container.CreateItemAsync(document, partitionKey);

您可以使用

PartitionKeyBuilder().Build()
输出与您构造的分区键值进行比较,看看有什么差异...

© www.soinside.com 2019 - 2024. All rights reserved.