Как получить возврат из функции Postgresql с EF в Dotnet Core

Я пытаюсь использовать функции и хранимые процедуры в 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 по функции.


person Sercan    schedule 24.05.2020    source источник


Ответы (1)


ExecuteSqlCommand предназначен только для выполнения команд, не возвращающих результатов.

FromSqlRaw предназначен для выполнения произвольного SQL, который возвращает данные, имеющие ту же форму, что и объект в вашей модели, поэтому вы обязаны убедиться, что sp_Get_Products возвращает все поля в Product. Может показаться, что ваша функция не возвращает столбец Id.

person Shay Rojansky    schedule 24.05.2020