【发布时间】:2017-09-29 20:46:48
【问题描述】:
我正在尝试在 .NET Core RESTful API 上实现分页(使用 EF)。
与其重新发明轮子,我希望有一种方法可以使用通用函数,该函数可以挂接到 API 处理程序并拦截请求以将它们应用到 EF 查询结果或 .NET Core 中内置的东西我不知道。任何人都可以指出我在.NET Core 中知道的图书馆的大致方向吗?
我以前这样做的方式(并且在非 .NET Core 应用程序中已经完成)是创建一个函数,我必须将参数物理添加到控制器函数(pageSize,pageNumber),这确实很乏味(而且我觉得有点不整洁)将这两个参数添加到每个函数中。
【问题讨论】:
-
EF 有两个有用的方法:
Skip(int)和Take(int)。您可以将两者结合起来仅获取您需要的页面。 -
据我所知,没有任何内置功能。但我一直这样做的方式是通过一个从存储库返回的类(当对简单应用程序使用存储库模式时),它实现了一个或两个接口(用于排序、分页)。这样 DbContext/IQueryable 接口就不必泄漏到域或应用程序层。使用 CQRS 则完全不同,因为您将拥有针对特定处理程序的命令/查询
标签: c# rest pagination asp.net-core