0

我遇到了一个真正令人困惑的情况,我希望能得到一些帮助。这段代码:

TableOperation retrieveOperation = TableOperation.Retrieve<T>(partitionKey, rowKey);
TableResult result = await table.ExecuteAsync(retrieveOperation);
T obj = result.Result as T;

问题出在分区键上,格式为“Post:UID”,例如:Post:f45ff69958e14342970a6ea88e7a009f. 插入和检索数据很好,但让我抓狂的是,当我在检索对象后检查它时,PartitionKey 的“Post:”部分已从对象数据中剥离。创建的对象中的分区键只是f45ff69958e14342970a6ea88e7a009f. 这意味着如果我对对象进行更改并尝试执行 -InsertOrReplace操作,它将仅使用冒号后面的部分创建新记录。我终其一生都无法理解这是怎么发生的。

我曾尝试在 Google 上搜索分区键中的非法字符,但找不到任何关于冒号是非法字符的信息,如果这是一个常见问题解答,请见谅。

对此的任何帮助将不胜感激。

4

1 回答 1

0

冒号不是分区键的非法字符。有关受限字符的更多信息,请参阅本页上的“关键字段中不允许使用的字符”部分

基于上面的代码片段,我创建了一个循环,该循环生成相同长度和相同“Post:”前缀的 GUID,并且没有重现该问题。如果问题仍然存在,请发布重现问题所需的整个代码部分。

于 2016-03-29T18:27:29.140 回答