我一直在读 https://github.com/ServiceStack/ServiceStack.OrmLite 找到方法,以便我可以执行正常的 SQL(字符串命令),并获取结果集,但我认为没有任何方法。
我正在测试 OrmLite v 4.0.17.0。
在上面的页面中,提到了一个方法SqlList,但我没有这样的方法可用:
我有一个 ExecuteSql,但我没有得到结果集,只有一个 int:
那么,有两个问题:
- 有没有一种方法可以执行自定义查询,一种接受字符串作为参数的方法,然后我可以在其中返回结果集、行或对象或其他内容?
- 当我这样做时,如何创建“LIMIT”,例如“SELECT * FROM a LIMIT 10”?
这是版本信息:
最佳答案
是的,我最近注意到 db.SqlList
在 OrmLite v4 refactor 中丢失了。所以我恢复了它back in this commit 。它将在本月底之前的 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));
关于c# - ServiceStack.OrmLite : Where is the method to write custom SQL and get result set back?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999864/