Dapper execute存储过程引发关于多映射的ArgumentException

Bob*_*ley 4 dapper

我有一个存储过程,我正在尝试使用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(...)现在一切正常.