我一直在尝试使用 WCF 并编写了一个 WCF 服务来为网站提供后端。我在实现服务器端分页时遇到了问题,因为我发现的所有示例(例如 http://msdn.microsoft.com/en-us/library/ee358711.aspx )似乎都使用 DataServiceQueryContinuation 和 WCF 数据服务。
虽然我很高兴可以编写一个 WCF 数据服务来返回数据,但使用一个 WCF 服务来处理登录和更新用户信息等事情,然后使用一个单独的 WCF 数据服务来处理更大的查询/报告,似乎会更加复杂。
这是否是标准做法,或者是否存在通过 WCF 服务的方法调用来分页数据的内置机制?
编辑
我找到了几种可能的方法来执行此操作,其中一个简单的方法涉及 Linq 的 skip
和 take
运算符:Implementing pager through WCF service
还有一个更复杂的方法:
Best practice for WCF service with large amounts of data?
我曾想过可能有一种方法可以使用 WCF 服务来分页数据,就像使用 WCF 数据服务一样:http://msdn.microsoft.com/en-us/library/ee474245.aspx
有人知道这是否可行吗?
最佳答案
我们使用 WCF 服务进行与后端服务器的所有通信,并且通过仅将简单的 PaginDTO 传递到具有 PageSize 和 CurrentPageIndex 等属性的方法调用来实现分页。
结果是一个 PagedDTO,其中包含项目列表和有关页面总数的信息。
我们为数据库使用 Entity Framework ,并且通过 Skip/Take 实现起来非常简单。
希望这有帮助:)
关于.net - 是否可以使用 WCF 服务而不是 WCF 数据服务来实现服务器端分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7795169/