繁体   English   中英

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

[英]Azure table storage: How to get a single entity by a partition key only?

我试图获得仅提供有分区键的单个实体。 我当前的代码正在从IEnumerable返回一个列表,但实际上它只是一个实体,拥有一个列表似乎并不是很有效,并且我必须遍历它。 没有列表/ 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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM