我有一个名为 Article 的表,其中包含 6 个不同的分区键值,每个分区键下有 100 个实体,但在每个分区键下我只想从表中检索 n 个实体。那么,我想查询它只使用分区键返回“n”个随机实体吗?
问问题
758 次
1 回答
0
我认为没有直接的解决方案。但是您可以通过指定 random where 条件来模拟随机值的检索CustomKey
。CustomKey
是技术领域,它仅用于解决您的问题并且具有int
类型。例如,将新项目添加到 Azure 表时,可以为该字段分配 0 到 100 之间的随机值。然后你可以写这样的东西(基于这篇文章):
var rand = new Random();
var query = from entity in context.CreateQuery<Customer>("CustomersOver30")
where entity.PartitionKey == "MyPartitionKey" &&
entity.CustomKey > rand.Next(0, 50) && entity.CustomKey < rand.Next(50, 100)
select entity;
您将检索一些实体,如果它大于或等于您的n
,只需从中获取n
项目。如果项目数会更少n
,只需重复此操作,直到您有足够数量的项目。
是的,它是 hack,但是 azure 表的机会非常有限 - 仅支持 where 和 top 操作。
于 2016-02-25T07:19:44.440 回答