繁体   English   中英

Dapper DynamicParameters返回错误

[英]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

您需要在ANDOR中间加上一些空格。

在这种情况下,实际上您不需要DynamicParameters ,顺便说一句。 这里的“经典” dapper用法将是:

new { classID, personID } 

作为参数对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM