Azure 表存储:如何仅通过分区键获取单个实体?



我正在尝试获取仅提供分区键的单个实体。我当前的代码从IEnumerable返回一个列表,但是拥有一个列表似乎不是很有效,而实际上它只是一个实体,我必须通过它做一个foreach。有没有办法在没有列表/IEnumerable的情况下实现?

var entities = currentTable.ExecuteQuery(new TableQuery<ItemEntity>()).Where(e => e.PartitionKey.Equals(itemEntity.xId)).ToList();

如果要获取指定的实体,则应同时提供分区键和行键。

但是如果你想得到一个随机实体,你应该使用 GvS 提供的方法。

查询的结果始终是 IEnumerable。

如果您只期望一个结果,则可以使用:

var result = currentTable.ExecuteQuery(new TableQuery<ItemEntity>()).Where(e => e.PartitionKey.Equals(itemEntity.xId)); 
// First element from the result. Will fail when there is no element
var entity1 = result.First();
// First element from the result. Will give null when no element is available.
var entity2 = result.FirstOrDefault();
// First element from the result. Will fail when there is no element, or more as one element
var entity3 = result.Single();
// First element from the result. Will give null when one element is available, or fail (Exeption) when more as one.
var entity4 = result.SingleOrDefault();

相关内容

  • 没有找到相关文章

最新更新