通过 SqlQuery 传递 GUID 值将引发错误:uuid 类型的输入语法无效

问题描述 投票:0回答:1

我编写了从 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”

您能帮我了解问题所在吗?

c# postgresql entity-framework-core
1个回答
0
投票

最后我自己找到了解决方案。我删除了“{request.Data!.UserId}”周围的单引号,效果很好。

_db.Database.SqlQuery<CreateOrderInfo>($"select * from Asset_CreateOrderInfo({request.Data!.UserId},{request.Data!.SymbolId})")

这真是一个可笑的问题!!!

© www.soinside.com 2019 - 2024. All rights reserved.