我编写了从 PostgreSQL 调用函数的代码。在 pgAdmin 中,我调用该函数,它工作正常。
这是我的 C# 代码:
_db.Database.SqlQuery<CreateOrderInfo>($"select * from Asset_CreateOrderInfo('{request.Data!.UserId}',{request.Data!.SymbolId})")
生成的命令是这样的:
select * from Asset_CreateOrderInfo('00000001-0000-0000-0000-000000000000',2)
当我在 pgAdmin 中运行上面的代码时,它工作正常。但是当我通过 EF Core 和 C# 发送时,它不起作用并引发此错误:
Npgsql.PostgresException(0x80004005):22P02:uuid 类型的输入语法无效:“@p0”
您能帮我了解问题所在吗?
最后我自己找到了解决方案。我删除了“{request.Data!.UserId}”周围的单引号,效果很好。
_db.Database.SqlQuery<CreateOrderInfo>($"select * from Asset_CreateOrderInfo({request.Data!.UserId},{request.Data!.SymbolId})")
这真是一个可笑的问题!!!