[英]Dapper DynamicParameters returning error
我目前正在使用最新的dapper版本1.50.0-beta9。 我用于Oracle的提供程序是Oracle.ManagedDataAccess
版本12.1.2400。 使用dapper的动态参数时出现错误。 我的代码类似于以下示例:
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);
}
}
这将返回此错误:
无效的参数绑定
参数名称:personidAND
您在SQL中缺少语法。 你拥有的是
WHERE Foo=:fooBar=:bar
您需要在AND
或OR
中间加上一些空格。
在这种情况下,实际上您不需要DynamicParameters
,顺便说一句。 这里的“经典” dapper用法将是:
new { classID, personID }
作为参数对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.