首页 > 解决方案 > 使用数据集我应该在服务器或数据集查询中分页

问题描述

我正在为我正在创建的网站使用强类型数据集

我应该修改我的数据集查询以每次带来 10 个结果,还是应该使用 Linq 并通过我已经从列表中获得的数据进行分页

例如,我可以使用

List<T> newsList = news.GetList().Take(x).Skip(x);

或者我可以一起去

Select * from News Order By NewsId Desc Offset 0 Rows Fetch Next 1 Rows Only;

标签: c#asp.netdataset

解决方案


我的建议是始终在数据库查询中进行分页和过滤。将其移至 UI 只会让您在 SQL 服务器、网络、内存上承受过多的负载。在最坏的情况下,竞争条件/触发器更新竞争条件检测。

在 WebDevelopment 中更是如此。页面生命周期规定要构建页面,处理回发,发送给用户 - 然后立即从内存中删除。您必须不遗余力地保留数据,而这本身可能会导致许多问题。ASP.NET 比正常的 .NET 应用程序和数据库查询更容易受到 OOM 异常的影响,而 Linq 就在那里寻找罪魁祸首:https ://blogs.iis.net/webtopics/troubleshooting-system-outofmemoryexceptions-in-asp-net


推荐阅读