我试图在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结果。
ExecuteSqlCommand
仅用于执行不返回结果的命令。
FromSqlRaw
是用于执行任意的SQL,返回的数据与模型中的实体形状完全相同,所以你有责任确保 sp_Get_Products
返回Product中的所有字段。看起来你的函数可能没有返回产品中的 Id
栏目。