我在尝试从 Windows Azure 表存储下的表中选择一行时遇到一个奇怪的错误。异常“已添加具有相同密钥的项目”。即使我没有插入任何东西,也会被抛出。导致问题的查询如下:
var ids = new HashSet<string>() { id };
var fields = new HashSet<string> {"@all"};
using (var db = new AzureDbFetcher())
{
var result = db.GetPeople(ids, fields, null);
}
public Dictionary<string, Person> GetPeople(HashSet<String> ids, HashSet<String> fields, CollectionOptions options)
{
var result = new Dictionary<string, Person>();
foreach (var id in ids)
{
var p = db.persons.Where(x => x.RowKey == id).SingleOrDefault();
if (p == null)
{
continue;
}
// do something with result
}
}
正如你所看到的,只有 1 个 id 并且错误被抛出在循环的顶部并且没有被修改。
但是,我使用 "" 作为该特定行的分区键。是什么赋予了?