gpt4 book ai didi

c# - 如何将参数与传入参数化 SQL 语句的 OrmLiteReadConnectionExtensions.Select(...) 一起使用?

转载 作者:行者123 更新时间:2023-12-04 10:28:03 26 4
gpt4 key购买 nike

我有一个使用 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。

最佳答案

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) })

关于c# - 如何将参数与传入参数化 SQL 语句的 OrmLiteReadConnectionExtensions.Select(...) 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60551986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com