我目前在我们的一个项目中使用 dapper,我们一直在执行存储过程。在前几个方法中,当我们执行的存储过程返回行时,一切正常。
现在,当我尝试从找到时返回信息的存储过程中获取数据时,我遇到了一个问题。这是一个非常常见的用例(例如,在应用程序上记录用户)。当调用该Query
方法时,sproc 没有返回任何行,dapper 抛出一个ArgumentException
带有消息的:
“使用多映射 API 时,如果您有除 Id 参数名称以外的键,请确保设置 splitOn 参数:splitOn”
我正在使用的代码是:
using (var conn = new SqlConnection(connString))
{
conn.Open();
return conn.Query<Customer>(
sql: "prc_GetCustomer",
param: new { Parameter = p },
commandType: CommandType.StoredProcedure).FirstOrDefault();
}
我知道Execute
当过程预计不会返回任何行时应该使用一种方法,但这真的不是我的情况。此外,dapper 异常具有误导性,因为我没有使用多重映射。
有任何想法吗?谢谢!