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

时间:2014-07-31 11:18:04

标签: c# ormlite-servicestack micro-orm

在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;

感谢。

2 个答案:

答案 0 :(得分:4)

在ServiceStack.OrmLite v4中,Limit()似乎仅作为JOIN的扩展名提供。要构建查询:

SqlExpression<T>

我希望这可以帮助别人。我花了几个小时的谷歌搜索。

答案 1 :(得分:1)

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

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

这可能会对Limit问题ServiceStack.OrmLite: Where is the method to write custom SQL and get result set back?

有所帮助