如何在Dotnet Core中使用EF从Postgresql函数中获取返回值?

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

我试图在postgresql中使用EF核心的函数和存储过程。我创建了一个函数通过编写EF迁移文件和更新我的数据库。我可以看到我的函数被创建在数据库中,当我运行 "select public.sp_Get_Products() "在Pgadmin中,我得到我的结果正确。

但是当我尝试用EF核心获取结果时,下面的代码返回给我:-1

_context.Database.ExecuteSqlCommand("select public.sp_Get_Products()");

如果我尝试使用下面的FromSqlRaw,它返回的是所需的列'Id'没有出现在'FromSql'操作的结果中。

_context.Product.FromSqlRaw("select public.sp_Get_Products()");

所以,我还是不知道如何通过函数从postgresql中得到我的select结果。

postgresql .net-core entity-framework-core npgsql sql-function
1个回答
0
投票

ExecuteSqlCommand 仅用于执行不返回结果的命令。

FromSqlRaw 是用于执行任意的SQL,返回的数据与模型中的实体形状完全相同,所以你有责任确保 sp_Get_Products 返回Product中的所有字段。看起来你的函数可能没有返回产品中的 Id 栏目。

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