-1

我有一个名为 Article 的表,其中包含 6 个不同的分区键值,每个分区键下有 100 个实体,但在每个分区键下我只想从表中检索 n 个实体。那么,我想查询它只使用分区键返回“n”个随机实体吗?

4

1 回答 1

0

我认为没有直接的解决方案。但是您可以通过指定 random where 条件来模拟随机值的检索CustomKeyCustomKey是技术领域,它仅用于解决您的问题并且具有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 回答