我有一个存储过程,我正在尝试使用Dapper执行,这会引发一个看起来与我正在尝试做的事情无关的错误,尽管我似乎无法弄清楚我在做什么错误.
这是我试图调用的存储过程的签名:
ALTER PROCEDURE [dbo].[stp_UpdateInboundDaf]
@InboundType varchar(255),
@Id bigint,
@UserId bigint,
@DonationID bigint = NULL,
@StatusId int = NULL,
@FinalFlag bit = NULL,
@ValidatedFlag bit = NULL,
@SignedFlag bit = NULL
AS ...
Run Code Online (Sandbox Code Playgroud)
这是我为尝试调用该过程而编写的代码:
_cnx.Query("stp_UpdateInboundDaf", new
{
InboundType = parameters.InboundType,
Id = parameters.Id,
UserId = parameters.UserId,
DonationId = parameters.DonationId,
StatusId = parameters.StatusId,
FinalFlag = parameters.IsFinal,
ValidatedFlag = parameters.Validated,
SignedFlag = parameters.Signed
}, commandType: CommandType.StoredProcedure);
Run Code Online (Sandbox Code Playgroud)
这些是传入的参数:

这是我得到的错误:
"当使用多映射API时,如果您有除Id参数名称以外的密钥,请确保设置splitOn参数:splitOn"
UPDATE
该SqlMapper.GetDynamicSerializer(IDataRecord reader, int startBound, int length, bool returnNullIfFirstMissing)方法引发了错误.这是错误位置和堆栈跟踪:

有任何想法吗?
我使用的是小巧玲珑的当前版本(我从字面上只克隆Github上回购,只是写了这个问题之前,拉SqlMapper.cs到我的项目).
Bob*_*ley 10
我弄清楚我的问题在这里.我的字面意思也是如此.我的存储过程不返回任何值,所以SqlMapper试图序列化不存在的东西.我改为使用代码_cnx.Execute(...)代替,_cnx.Query(...)现在一切正常.