我有一个大约有2k条记录的Azure数据库,我想使用.NET客户端为Azure移动服务检索一条随机记录。有谁知道怎么做?
答案 0 :(得分:2)
有几种方法可以实现这一目标。如果您只想从客户端执行此操作,而不更改服务器表上的任何默认逻辑,那么您可以通过发送一些请求来执行此操作:第一个请求仅检索表中元素的数量,以及下一个要求随机元素:
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中)以选择单个项目,然后调用该API。 Select n random rows from SQL Server table的主题有很多选项可供选择。