在WEB API服务中传递参数数组时出现问题
public class SampleController : ApiController
{
public string Getdetails([FromUri] int[] id)
{
var inconditions = id.Distinct().ToArray();
using (var dbConn = new OracleConnection("DATA SOURCE=h;PASSWORD=C;PERSIST SECURITY INFO=True;USER ID=T"))
{
dbConn.Open();
var strQuery = "SELECT PRIO_CATEGORY_ID AS PRIO, LANG_ID AS LANG, REC_DATE AS REC, REC_USER AS RECUSER, DESCR, COL_DESCR AS COL, ROW_DESCR AS DROW, ABBR FROM STCD_PRIO_CATEGORY_DESCR WHERE REC_USER IN (:p)";
var queryResult = dbConn.Query<SamModel>(strQuery, new { p = inconditions });
return JsonConvert.SerializeObject(queryResult);
}
}
现在,在调用API时http://localhost:35432/api/Sample?id=1&id=83
会抛出一个错误,提示var queryResult = dbConn.Query(strQuery);
{“ ORA-00907:缺少右括号”}
检查了所有括号,一切看起来都不错
无需将您的集合参数包装在括号中。Dapper不仅具有查找和替换的功能,还足够聪明地独自处理它的收集参数。试试这个:
... WHERE REC_USER IN :p
签出List Support
部分。
在您的(:p)
情况下,会生成以下类型的查询:
... WHERE REC_USER IN ((1,2,3))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句