ServiceStack.OrmLite:编写自定义SQL并获取结果集的方法在哪里?

时间:2013-11-15 11:18:19

标签: c# mysql ormlite-servicestack

我一直在读 https://github.com/ServiceStack/ServiceStack.OrmLite 找到方法,这样我就可以执行普通的SQL(字符串命令),并获得一个结果集,但我认为没有。

我正在测试OrmLite v 4.0.17.0。

在上面的页面中,提到了一个方法 SqlList ,但我没有这样的方法:

enter image description here

我有一个ExecuteSql,但我没有得到任何结果集,只是一个int:

enter image description here

所以,有两个问题:

  1. 有没有办法执行自定义查询,一个接受字符串作为参数的方法,然后我返回结果集,行或对象或其他什么?
  2. 当我在这里时,如何创建一个" LIMIT",例如" SELECT * from a LIMIT 10"?
  3. 以下是版本信息:

    enter image description here

1 个答案:

答案 0 :(得分:2)

是的,我最近注意到db.SqlList db.Select丢失了var results = db.Select<Poco>("SELECT * FROM a LIMIT 10"); ,所以我恢复了它OrmLite v4 refactor。这将在本月底之前的第4版v4中提供。

您仍然可以使用var results = db.Select<Poco>("Foo = 'bar'"); 进行原始SELECT查询,例如:

SELECT

这只是一个问题,因为它不是 SELECT 语句,因为我们假设它是简短的:

db.SqlList

并自动为您添加其余的SQL,但如果您未发出var results = db.Select<Poco>(q => q.Limit(10)); 语句,则会出现此问题,例如:调用存储过程,这是{{1}}的用途,因为原始SQL保持不变。

支持Typed Expression API中的LIMIT

使用限制进行查询的另一种方法是使用类型化表达式API,例如:

{{1}}