Как получить результат функции из БД?
Есть функция в БД 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.
