2

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

我正在测试 OrmLite v 4.0.17.0。

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

在此处输入图像描述

我有一个 ExecuteSql,但没有返回结果集,只有一个 int:

在此处输入图像描述

所以,两个问题:

  1. 有没有办法执行自定义查询,一种将字符串作为参数的方法,然后我在哪里取回结果集、行或对象或其他东西?
  2. 当我这样做时,如何创建“LIMIT”,例如“SELECT * FROM a LIMIT 10”?

这是版本信息:

在此处输入图像描述

4

1 回答 1

2

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

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

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

只有当它不是SELECT语句时才会出现问题,因为我们假设它是速记的,例如:

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

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

支持类型表达式 API 中的 LIMIT

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

var results = db.Select<Poco>(q => q.Limit(10));
于 2013-11-15T13:25:16.080 回答