提问者:小点点

Dapper Npgsql DbString字符vayring参数


我正在尝试使用Dapper调用声明为以下内容的PostrSQL函数:

创建或替换函数public. test(参数1整数,参数2字符变化,参数3字符变化)

我正在使用Dapper-Async像这样调用这个函数:

cnx. QueryAsync($@"SELECT*从public.test(@Param1,@Param2,@Param3);",new{Param1=12,Param2=mylong string1,Param3=mylong string2});

此调用失败并出现以下错误:

npgsql. PostgresException(0x80004005):42883:函数public.test(整数、文本、文本)不存在

如您所见,DbString匹配文本参数类型。我如何匹配字符变化?


共1个答案

匿名用户

问题可能是您的函数定义为参数类型字符变化,但错误显示您正在发送文本。虽然这可能有点令人困惑,但这是两种不同的后端类型。

默认情况下,Npgsql映射。NET字符串到text,而不是字符变化。您可以更改函数以接受text(或添加重载),或使用NpgsqlDbType指定字符变化(但不确定如何使用Dapper执行此操作)。