限制Linq到SQL分页查询的语句

时间:2014-10-21 10:44:25

标签: c# sql asp.net linq linq-to-sql

是否有可能在Linq SQL(ASP.NET)中执行此SQL语句

Select * form users limit 23,100

不使用其他解决方案,如Loop,For,....

感谢您的回复。

2 个答案:

答案 0 :(得分:6)

方法为TakeSkip,示例为:

var result = (from c in Source
             select c).Skip(23).Take(100).ToList();

作为分页数据的一个很好的实践,你可以有一些参数,样本:

public IEnumerable<Customer> GetCustomers(int pageSize, int pageNumber)
{
    var query = from c in customers
                select c;

    return query.Skip(pageSize * pageNumber)
                .Take(pageSize)
                .ToList();
}

答案 1 :(得分:2)

var usersList = (from users in db.Users
                 select users).Skip(23).Take(100);

其中db是datacontext。

应该得到你想要的答案。

您可能希望使用orderby子句,因为无法保证每次返回的记录都是相同的顺序。