为什么Limit()"方法在ServiceStack OrmLite v4中不再存在

本文关键字:OrmLite ServiceStack v4 存在 不再 方法 Limit quot 为什么 | 更新日期: 2023-09-27 18:15:43

在ServiceStack OrmLite v3中你可以这样做:

var rows = db.Select<Employee>().Limit(10));

或:

var rows = db.Select<Employee>().Limit(5, 10)); // skips 5 then takes 10

然而,在v4中我再也找不到这些方法了。

我想我可以这样做:

var rows = db.SelectLazy<Employee>().Take(10);

然而,我怎么能做一个db.Select(不必写直接SQL),这将转化为(在SQLite中例如):

SELECT * FROM Employee LIMIT 10;

同样,是否有可能为以下内容编写等效的查询(再次不必直接编写SQL)?

SELECT * FROM Employee ORDER BY Age;

谢谢。

为什么Limit()"方法在ServiceStack OrmLite v4中不再存在

在ServiceStack。在OrmLite v4中,Limit()似乎只能作为SqlExpression<T>的扩展使用。构建查询:

var query = db.From<SWChars>().Limit(10);
query = query.Where<SWChars>(char => 
    char.FirstName == "Jar Jar" &&
    char.FunnyLines < 0);
var result = db.Select<SWChars>(query);
我希望这能帮助到一些人。我用谷歌搜索了几个小时。

我可以在文档中看到OrderBy/OrderByDescending,它看起来像:

var rows = db.SelectLazy<Employee>().OrderBy<Employee>(e=>e.Age).Take(10);

这可能有助于Limit问题ServiceStack。OrmLite:编写自定义SQL并获得结果集的方法在哪里?