Как получить результат функции из БД?

Есть функция в БД MySQL, которая считает сумму покупки.

CREATE DEFINER=`root`@`localhost` FUNCTION `Count`() RETURNS int
    DETERMINISTIC
begin
    DECLARE num int; 
    set num = (SELECT   SUM(p.Price*chek.Quantity) as Total
FROM  pos_product.chek,product p  
Where  Product_id= p.id );
    RETURN num;
end

Это результат работы функции

И теперь вопрос как это получить из БД?

using (pos_productContext db = new pos_productContext())
{
    try
    {
        ProductList = db.Products.ToList();
        ClientList = db.Clients.ToList();
       
        ChekList = db.Cheks.FromSqlRaw("SELECT product.id,product.Image, product.Title,product.Price,chek.Product_id ,chek.Quantity FROM chek  left join pos_product.product  on chek.Product_id = product.id;  ").ToList();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }    
}

Пробовал выводить, везде было null.
Пробовал FromSqlRaw и др. методы.


Ответы (1 шт):

Автор решения: Akina

Оформите это не как функцию, а как хранимую процедуру:

CREATE DEFINER=`root`@`localhost` PROCEDURE `Count`()
SELECT SUM(p.Price*chek.Quantity) AS Total
FROM pos_product.chek
JOIN product p ON chek.Product_id = p.id;

И теперь выполняйте

CALL `Count`;

словно это обычный SELECT-запрос. В ответ вернёт набор записей с одной записью из одного поля Total.

→ Ссылка