c# - ServiceStack.OrmLite : Where is the method to write custom SQL and get result set back?

标签 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”?

这是版本信息:

enter image description here

最佳答案

是的,我最近注意到 db.SqlListOrmLite 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/

相关文章:

c# - Json.net 在 Web API 中使用,但在 Razor 模板中调用 Json.Encode 时不使用

c# - 尽管原始类型如何,我如何强制将每个字符串编码为 UTF8?

mysql - GTFS 查询以列出两个站点名称之间的所有出发和到达时间

android - 在 Xamarin.Android 应用程序的情况下使用的 ORMLite 等效包是什么

c# - 为什么 GetProperties 两次列出 protected 属性(在通用基类中声明)?

c# - SQL查询多次返回同一条记录

mysql - 如何选择具有偏移量的特定行

javascript - 如何从mysql中选择多边形中的标记

c# - ServiceStack、LeftJoin 查询

c# - ServiceStack.OrmLite - 我可以做类似 Db.Select<Foo, Bar>() 的事情吗?