gpt4 book ai didi

mysql - 在 MVC Entity Framework 6 的 Controller 中使用存储的 MySQL 过程从多个表获取结果

转载 作者:行者123 更新时间:2023-11-29 21:23:10 25 4
gpt4 key购买 nike

我在 MVC 应用程序中使用 Entity Framework 6MySQL(注意 MySQL 不是 SQL)数据库。我使用以下代码从 MVC 中的 Controller 调用 MySQL 存储过程:

    List<ProductList> result = ent.Database.SqlQuery<ProductList>(
"call select_product_data(@_surface, @_price)",
new MySqlParameter("_surface", surfaceVal),
new MySqlParameter("_price", priceVal)
).ToList();

这里的 ProductList 是具有过程返回的所有属性的模型。我的程序的代码:

     CREATE DEFINER=`root`@`%` PROCEDURE `select_product_data`
(
IN _surface LONG,
IN _price LONG
)
BEGIN

select * from product where surface < _surface and price > _price limit 5;
SELECT FOUND_ROWS() as cnt_total_product;

END

我在相关 result 对象中获取了 5 个产品的列表,但没有在结果中获取 cnt_total_product 的值。如何在 MVC 中使用 Entity Framework 6 获取 Controller 中的列表和 cnt_total_product 值?

我在互联网上搜索过这个,但没有任何帮助我在 MVC 中使用 MySQLEF6

最佳答案

如果两个结果集都没有匹配的列,则解决方法是返回完全相同的列类型,并使用默认值(如 NULL 或其他值)并将结果联合起来。例如

select "set1", col1, col2, col3, 0 from product where surface < _surface  and price > _price limit 5;

UNION ALL

SELECT "set2", NULL, NULL, NULL, FOUND_ROWS() as cnt_total_product;

现在通过过滤 set1 和 set2 在代码端拆分这些结果集

关于mysql - 在 MVC Entity Framework 6 的 Controller 中使用存储的 MySQL 过程从多个表获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35628018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com