我有一个包含两个不同DbSet的实体框架DbContext。
在我看来,我将这两个集合组合到同一个视图模型中,并将它们列在同一个表中。
我想支持表分页,以便能够在按特定列排序的时间仅查询一页记录。如果不从数据库中读取所有记录,然后从内存中分页,我无法看到如何做到这一点。
例如,我希望能够按日期升序排序,因为两个表都有一个日期列。我可以简单地从两个表中获取页面大小然后在内存中排序,但是当我跳过记录时问题就出现了。我不知道每个表中要跳过多少,因为它取决于在另一个表中找到多少记录。
有没有办法操纵Entity Framework来做到这一点?
答案 0 :(得分:1)
有可能。
这将是明智的废话,但鉴于您的数据库模型已损坏,无法解决这个问题。它基本上必须获得SQL的所有行的临时视图以找到第一行 - 这将是缓慢的。
答案 1 :(得分:1)
最好的办法是将它们与存储过程或视图结合起来,然后将sp / view映射到Entity Framework。在客户端上梳理它们会破坏性能 - 让服务器为你做这件事;这显然是服务器方面的任务。