最近在学习轻量级的ORM——Dapper,同时也在尝试着自己实现一些功能。
但是当尝试拼接Sql,在填入参数的时候出了一些问题。
以下是示例代码,首先是声明一个SqlCommand对象。
SqlCommand cmd = new SqlCommand();
//构建SQL语句
cmd.CommandText = @"SELECT * FROM Test WHERE abc=@test";
//构建SQL Parameter
SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "test";
parameter.Value = "test";
cmd.Parameters.Add(parameter);
然后执行查询语句
//执行查询语句
var result = Connection.QuerySingleOrDefault(cmd.CommandText, cmd.Parameters);
然后此时会出现如下错误:
必须声明标量变量@test. 然而很明显,我们在SqlCommand中已经添加了名为@test的参数。那么仍然在报这个问题。
那么问题究竟出在哪儿?答案就是在Dapper执