Azure 移动服务 - 获取随机记录

Azure Mobile Service - Get Random Record

我有一个包含大约 2k 条记录的 Azure 数据库,我想使用 Azure 移动服务的 .NET 客户端检索一条随机记录。有人知道怎么做吗?

有几种方法可以实现这一点。如果您只想从客户端执行此操作,而不更改服务器 tables 上的任何默认逻辑,那么您可以通过发送几个请求来完成:第一个请求仅检索元素的数量在你的 table 中,下一个要求随机元素:

var table = client.GetTable<TodoItem>();
var items1 = await table.IncludeTotalCount().Take(0).ToListAsync();
var count = ((ITotalCountProvider)items1).TotalCount;
var itemNumber = rndGen.Next(count);
var items2 = await table.Skip(itemNumber).Take(1).ToListAsync();
var item = items2.FirstOrDefault();

另一种方法是将服务器逻辑(例如,在自定义 API 中)更改为 select 单个项目,然后调用它 API。 Select n random rows from SQL Server table 上的帖子有很多关于如何完成此操作的选项。