为什么要使用"Limit()" ServiceStack OrmLite v4中不再存在这种方法? [英] Why does the "Limit()" method no longer exist in the ServiceStack OrmLite v4?

查看:107
本文介绍了为什么要使用"Limit()" ServiceStack OrmLite v4中不再存在这种方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在ServiceStack OrmLite v3中,您可以执行以下操作:

in ServiceStack OrmLite v3 you could do:

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

或者:

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

但是我无法在v4中找到这些方法.

However I cannot find these methods any longer in v4.

我想我可以改为执行以下操作:

I suppose I can do the following instead:

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

但是我怎么做一个db.Select(不必编写直接的SQL),它将转换为(例如在SQLite中):

However how can I do a db.Select (not having to write direct SQL) which will translate to (in SQLite for example):

SELECT * FROM Employee LIMIT 10;

此外,是否可以为以下内容编写等效查询(再次无需编写直接SQL)?

Also, is it possible to write an equivalent query for the below (again without having to write direct SQL)?

SELECT * FROM Employee ORDER BY Age;

谢谢.

推荐答案

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

In ServiceStack.OrmLite v4, Limit() seems to only be available as an extension of SqlExpression<T>. To build a query:

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

我希望这可以帮助某人.我花了几个小时进行谷歌搜索.

I hope this helps someone out. It took me a few hours of Googling.

这篇关于为什么要使用"Limit()" ServiceStack OrmLite v4中不再存在这种方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆