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

我一直在https://github.com/ServiceStack/ServiceStack.OrmLite上阅读以找到方法,所以我可以执行正常的SQL(字符串命令),并获得结果集,但我认为没有。

我正在测试OrmLite v 4.0.17.0。

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

在此处输入图像描述

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

在此处输入图像描述

那么,有两个问题:

  1. 有没有办法执行自定义查询,一个接受字符串作为参数的方法,然后我返回结果集,行或对象或其他什么?
  2. 当我在它时,我如何创建一个“LIMIT”,例如“SELECT * FROM a LIMIT 10”?

这是版本信息:

在此处输入图像描述

是的,我最近注意到db.SqlList在OrmLite v4重构中丢失了,所以我在这个提交中恢复了它。 这将在本月底之前的v4的下一版本中提供。

您仍然可以使用db.Select进行原始SELECT查询,例如:

 var results = db.Select("SELECT * FROM a LIMIT 10"); 

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

 var results = db.Select("Foo = 'bar'"); 

并自动为您添加其余的SQL,但是当您没有发出SELECT语句时这是一个问题,例如调用存储过程,这是db.SqlList ,因为原始SQL保持不变。

在Typed Expression API中支持LIMIT

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

 var results = db.Select(q => q.Limit(10));