我有一堆随机排序的记录,如下所示:
var entries = DataContext.Entries.OrderBy(e => Random());
Random 函数返回一个随机生成的 GUID,从而以随机方式对记录进行排序。现在我的问题是分页。在 MVC 中,我有一个用于列出条目的 Entry 控制器的 List 操作:
public class EntryController : Controller
{
public ActionResult List(int page)
{
int pageSize = 10;
var entries = DataContext.Entries.OrderBy(e => Random()).Skip((page - 1) * pageSize).Take(pageSize);
ViewData["entries"] = entries;
return View();
}
}
我的问题是,每当我从一页转到另一页时,条目都会重新排列。因此,当我转到第 1 页(第 1 步),然后转到第 2 页(第 2 步),然后返回第 1 页(第 3 步)时,第 1 步中显示的条目与第 3 步中显示的条目不同。我绝对需要在第一次随机排列记录,但在随后的查找中不需要。
关于如何最好地解决这个问题的任何想法?