gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:49:57 25 4
gpt4 key购买 nike

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

这是我为尝试调用该过程而编写的代码:
_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);

这些是传入的参数:

enter image description here

这是我得到的错误:

“使用多映射 API 时,如果您有 Id 以外的键,请确保设置 splitOn 参数
参数名称:splitOn"

更新

错误是从 SqlMapper.GetDynamicSerializer(IDataRecord reader, int startBound, int length, bool returnNullIfFirstMissing) 引发的方法。这是错误位置和堆栈跟踪:

enter image description here

有任何想法吗?

我正在使用 Dapper 的当前版本(我实际上只是在写这个问题之前克隆了 Github 上的 repo 并将 SqlMapper.cs 拉到我的项目中)。

最佳答案

我想出了我的问题在这里。我太从字面上看这些例子了。我的存储过程不返回任何值,所以 SqlMapper试图序列化一些不存在的东西。我将代码更改为使用 _cnx.Execute(...)而不是 _cnx.Query(...)现在一切正常。

关于Dapper 执行存储过程引发关于多映射的 ArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com