我目前使用的是最新版本的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
发布于 2016-04-20 06:59:08
您在SQL中缺少语法。你所拥有的是
WHERE Foo=:fooBar=:bar您需要一个AND或OR以及中间的一些空格。
在这个场景中,您实际上并不需要DynamicParameters。这里的“经典”穿衣用法应该是:
new { classID, personID } 作为参数对象。
https://stackoverflow.com/questions/36735189
复制相似问题