[英]Dapper DynamicParameters returning error
I am currently using the latest version of dapper, version 1.50.0-beta9. 我目前正在使用最新的dapper版本1.50.0-beta9。 The provider I am using for Oracle is the Oracle.ManagedDataAccess
, version 12.1.2400. 我用于Oracle的提供程序是Oracle.ManagedDataAccess
版本12.1.2400。 I am getting an error when using dapper's dynamic parameters. 使用dapper的动态参数时出现错误。 My code is similar to the example below: 我的代码类似于以下示例:
public class PersonDAL : OracleBase {
public PersonDAL() : base() {
}
public PersonDAL(string connectionString) : base(connectionString) {
}
public const string ParamPersonID = ":personid";
public const string ParamClassID = ":classid";
private const string getPersonByClassAndID = "SELECT PERSON_ID AS PersonID, PERSON_DESCRIPTION AS PersonDescription, CLASS_ID AS ClassID FROM TABLE_PERSON WHERE PERSON_ID = " + ParamPersonID + " AND CLASS_ID = " + ParamClassID;
public SystemModel GetModelByPersonID_ClassID(int classID, int personid) {
DynamicParameter = new DynamicParameters();
DynamicParameter.Add(ParamClassID, classID);
DynamicParameter.Add(ParamPersonID, personid);
return Connection.QuerySingle<SystemModel>(getPersonByClassAndID, DynamicParameter);
}
}
This is returning this error: 这将返回此错误:
Invalid parameter binding 无效的参数绑定
Parameter name: personidAND 参数名称:personidAND
You are missing syntax in the SQL. 您在SQL中缺少语法。 What you have is 你拥有的是
WHERE Foo=:fooBar=:bar
You need a AND
or OR
and some spaces in the middle. 您需要在AND
或OR
中间加上一些空格。
You don't actually need DynamicParameters
in this scenario, btw. 在这种情况下,实际上您不需要DynamicParameters
,顺便说一句。 The "classic" dapper usage here would be just: 这里的“经典” dapper用法将是:
new { classID, personID }
as the parameters object. 作为参数对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.