当存在分层分区键时,我似乎无法插入任何数据。我不断收到“(提供的分区键与集合中的定义不对应,或者与文档中指定的分区键字段值不匹配。”错误,但它没有意义,因为我提供了正确的键并且文档有这些值
'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));
由于您使用的是分层分区键,因此您需要指定分区键的所有部分。在你的情况下,也许用这样的东西构建你的分区键:
var partitionKey = new PartitionKeyBuilder()
.Add("PlayerInfo")
.Add("key")
.Build();
ItemResponse<dynamic> resp = await container.CreateItemAsync(document, partitionKey);
您可以使用
PartitionKeyBuilder().Build()
输出与您构造的分区键值进行比较,看看有什么差异...