来自NuGet,我正在使用
... \包\ Npgsql.2.2.5 \ lib中\ net45 \ Npgsql.dll
... \包\ Dapper.1.42 \ lib中\ net45 \ Dapper.dll
在PostgreSQL中调用存储过程时,我需要保留过程名的大小写
var x = cnn.Query<icd9>("GetDxLibrary", commandType: CommandType.StoredProcedure);
我收到运行时错误:
未处理的类型&#39; Npgsql.NpgsqlException&#39;发生在 Npgsql.dll
其他信息:错误:42883:函数getdxlibrary()没有 存在。
如果PostgreSQL中的函数重命名为getdxlibrary()
,一切顺利。
如何在Dapper中调用具有混合大小写名称的过程?
TIA
答案 0 :(得分:3)
只需在函数名称周围添加引号:
var x = cnn.Query<icd9>("\"GetDxLibrary\"", commandType: CommandType.StoredProcedure);
PostgreSQL会自动降低所有非引用标识符的大小,所以当你发送GetDxLibrary时,它实际上会看到getdxlibrary。