Dapper에서는이 컨텍스트에서 매개 변수 (배열, 목록 등)의 열거 형 시퀀스를 사용할 수 없습니다.

c# dapper

문제

다음 코드가 있습니다.

static void Main(string[] args){
        string sql= "SELECT * FROM Posts WHERE 1=1 ";
        SqlParameter[] @params= SetDynamicParameter(ref sql, "Param=Value", "Param2=Value2", "ParamN=ValueN");

        IDbConnection connection = new SqlConnection(connectionString);
        IEnumerable<Posts> en = connection.Query<Posts>(sql,param:@params);

        Console.ReadKey(true);
}
 static SqlParameter[] SetDynamicParameter(ref string sql,params string[] sarr) {
        string condition = string.Empty;
        List<SqlParameter> list = new List<SqlParameter>();
        foreach (var item in sarr)
        {
            condition += " AND "+item.Split('=')[0] + "=@" + item.Split('=')[0];
            list.Add(new SqlParameter("@" + item.Split('=')[0], item.Split('=')[1]));
        }
        sql += condition;
        return list.ToArray() ;
  }

출력 오류 :이 컨텍스트에서는 매개 변수 (배열, 목록 등)의 열거 형 시퀀스가 ​​허용되지 않습니다.

어떻게 될 수 있습니까? 동일한 솔루션이 있습니까?

인기 답변

SqlParameter 배열 대신 Dapper.DynamicParameters를 사용해보십시오.

var parameters = new DynamicParameters(); parameters.Add("@ParameterName", parameterValue);



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.