【问题标题】:How do I use parameters with OrmLiteReadConnectionExtensions.Select(...) passing in a parameterized SQL statement?如何在 OrmLiteReadConnectionExtensions.Select(...) 中使用参数,传入参数化的 SQL 语句?
【发布时间】:2020-03-05 18:35:40
【问题描述】:

我有一个使用 ServiceStack 和 ORMLite 的项目。我需要使用OrmLiteReadConnectionExtensions扩展方法List<T> Select<T>(this IDbConnection dbConn, string sqlFilter, params object[] filterParams)

问题是,我找不到任何有关如何将此方法与 SQL 选择语句和参数一起使用的文档或参考资料。

当我在 github 中查找代码时,提供了以下示例/提示:

db.Select<Person>("SELECT * FROM Person WHERE Age > @age", new[] { db.CreateParam("age", 40) }) 

这是有道理的,但问题是我的 ORMLite 创建的 db(IDbConnection 对象)没有 db.CreateParam(...) 方法。 如何为我的 ORMLite 存储库创建和执行参数化选择查询?需要明确的是,我是这个项目的用户 Sql Server。

【问题讨论】:

    标签: c# sql-server ormlite-servicestack


    【解决方案1】:

    OrmLite 确实有 IDbConnection.CreateParam() 扩展方法。

    查看SelectParamTests,了解在 OrmLite 中提供参数的不同示例:

    db.Select<Person>(x => x.Age == 27)
    db.Select(db.From<Person>().Where(x => x.Age == 27))
    db.Select<Person>("Age = @age", new { age = 27 })
    db.Select<Person>("Age = @age", new Dictionary<string, object> { { "age", 27 } })
    db.Select<Person>("Age = @age", new[] { db.CreateParam("age", 27) })
    db.Select<Person>("SELECT * FROM Person WHERE Age = @age", new { age = 27 })
    db.Select<Person>("SELECT * FROM Person WHERE Age = @age", new Dictionary<string, object> { { "age", 27 } })
    db.Select<Person>("SELECT * FROM Person WHERE Age = @age", new[] { db.CreateParam("age", 27) })
    
    db.Select<Person>("Age = @age", new { age = 27 })
    
    db.SelectNonDefaults(new Person { Age = 27 })
    
    db.SqlList<Person>("SELECT * FROM Person WHERE Age = @age", new { age = 27 })
    db.SqlList<Person>("SELECT * FROM Person WHERE Age = @age", new Dictionary<string, object> { { "age", 27 } })
    db.SqlList<Person>("SELECT * FROM Person WHERE Age = @age", new[] { db.CreateParam("age", 27) })
    

    【讨论】:

      猜你喜欢
      • 2015-06-03
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      相关资源
      最近更新 更多