gpt4 book ai didi

parameter-passing - Dapper:我可以为任何东西使用参数吗?

转载 作者:行者123 更新时间:2023-12-04 07:48:01 24 4
gpt4 key购买 nike

我正在编写一些代码来为我的应用程序准备我的数据库。代码中在建表的时候有一些重复的SQL语句,我想在一些方法中隐藏它们(目前只有两种:创建主键和表的id自增)邮政)。对于主键的简单情况,我首先写了一个这样的函数:

public void MakePrimaryKey(DbConnection conn, string tblName, string colName)
{
conn.Execute(@"
ALTER TABLE ""@tblName""
ADD CONSTRAINT ""@constrName"" PRIMARY KEY(""@colName"")
", new { tblName = tblName,
constrName = tblName + "_pkey",
colName = colName } );
}

在多次摆弄错误和异常之后,我最终得出结论,实际上不支持以这种方式使用参数,所以我切换到传统的 string.Format() 调用,一切都很好.

但我真的不满意。真的不支持这种使用参数的方式吗?如果是这样,我可以安全地使用这些参数的地方是什么?仅针对 SQL 查询的可变部分 - 例如我可以使用存储过程参数的地方?

最佳答案

如果我没记错的话,Dapper 使用参数化的 IDbCommand 来执行其查询。

参数化查询只是字符串替换操作。

更具体地说,参数化查询允许您在查询中包含参数,发送这些参数的值,然后 SQL Server 处理编译查询并传递参数值。

如果您不能使用所需的语法通过纯 ADO.NET 创建参数化查询,Dapper.NET 也无法为您完成。

关于parameter-passing - Dapper:我可以为任何东西使用参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270600/

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