c# - Linq to Entities Skip() 和 Take()

标签 c# asp.net linq entity-framework linq-to-entities

我正在开发一个 ASP.NET 应用程序,我正在创建一个 LINQ 查询,它将从数据库中选择分页记录。在用户界面上,我有一个列表框,用户可以在其中选择多个选项。我想知道:

  • 如何递增 Skip()、Take() 参数以查看下一个结果?

  • 如何使用“IN”关键字,以便如果用户从列表框中选择多个选项,查询可以检查所有值?

我的查询是这样的:

var searchResults = context.data_vault.Where(d => d.STATE == lstStates.SelectedItem.Text).OrderBy(d= > d.dv_id).Take(10).Skip(2);    
GridView1.DataSource = searchResults;
GridView1.DataBind();

最佳答案

我认为您对 Skip 的使用不正确。它应该在 Take 之前。

Skip 会跳过许多记录,因此对于第一页,传入 0,否则传入 (page number - 1) * 每页记录数。

我通常会这样做:

int Page = 1;
int RecordsPerPage = 10;
var q = yourQuery.Skip((Page - 1) * RecordsPerPage).Take(RecordsPerPage);

关于c# - Linq to Entities Skip() 和 Take(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950388/

相关文章:

asp.net - 奇怪的 ASP.NET MVC 链接 (A(anythingworkshere))

asp.net - 有哪些选项可用于在 ASP.NET MVC2 中存储应用程序设置?

c# - 如何使用 Linq 从 C# ASP.NET MVC 4 中的 IQueryable 中查找一个值?

linq - NHibernate:QueryOver<> 帮助

具有接口(interface)混淆的 C# 通用 ClientBase

c# - nhibernate 2.0 高效数据分页DataList控件和ObjectDataSource

c# - Entity Framework : Execute multiple commands in one round trip

c# - 使用 ASP.net 和 C# 上传 excel 文件

asp.net - 在 Visual Studio 2017 ASP.NET MVC 中引导之前,Popper 未加载

.net - 为 Linq 分组选择特定列