db.Select<T> 以相同的方式工作,并针对指定的表执行 SELECT,但是如果您想在服务器上执行自定义查询,则需要像第一个示例中那样提供查询:
var result = db.Select<Group>(q => q.Where(predicate).Limit(skip:5, rows:10));
也可以改写为:
var q = db.From<Group>();
db.Select(q.Where(predicate).Limit(skip:5, rows:10));
当您不提供查询时,您对表执行 SELECT all,例如:
db.Select<Group>()
已执行查询并返回Group 表中的所有行。
如果你想限制它,你仍然需要提供查询,例如:
db.Select<Group>(q => q.Limit(skip:5, rows:10));
或者:
db.Select(db.From<Group>().Limit(skip:5, rows:10));
此外,由于您要对查询进行分页,您应该查看 automatic support for paging in AutoQuery,其中包括类型化的服务客户端支持,例如:
client.Get(new QueryRockstars { Skip=10, Take=20, OrderBy="Id" });
除了提供typed streaming API 和GetLazy<T>,它在后台透明地执行多个分页查询:
var top250 = client.GetLazy(new QueryMovies {
Ratings = new[]{ "G", "PG-13" }
})
.Take(250)
.ToList();