[英]When using the multi-mapping APIs ensure you set the splitOn param if you have keys other than Id“, ”splitOn with Multiple relations
[英]Dapper Multi-mapping APIs splitOn param Error - I'm not using MultiMapping
我有一个项目,我与许多存储过程交互。 没有裸SQL选择。 我正在使用Dapper。 我们不会尝试使用任何MultiMapping功能。 我试图找出为什么这一个proc会返回该错误? 我该怎么检查? 我应该寻找什么?
错误:使用多映射API时,如果您具有Id \\ r \\ n \\ nParameter name以外的键,请确保设置splitOn参数:splitOn
您应该使用Execute()而不是Query(),因为您的SP不会返回任何记录。 Dapper假设您正在尝试获取数据,因此将缺少的结果映射到模型类。
我今天遇到了这个问题,并且无法理解为什么我在第一时间没有尝试多映射时收到MultiMapping错误消息。 我的代码使用dapper的Query而不是Execute,因为sproc实际上返回了一些行。
事实证明,在我的存储过程中,它接受一个varchar参数,如果param作为NULL传递,那么结果只是返回值整数0.如果它作为空字符串传递,我得到一个空的结果集在顶部正常返回值0。
因为我已经告诉Dapper使用Query<MyClass>
,所以它将null版本的普通0返回作为int,而不是MyClass
,并尝试使用Multimap,这是多图错误的来源。
为了解决这个问题,我更改了我的存储过程以将空参数转换为空字符串参数,从而确保空结果集而不是结果集,然后Dapper再次开始快乐工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.