我正在开发一个 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/