none
EFCore +Mysql 分页查询 IQueryable.Task(2) 报错 ,不知道是什么原因 RRS feed

  • 问题

  • 框架 Asp.netCore +EFCore+Mysql+autofac

    EF配置成功,各种基本操作均正常,唯独使用Linq 分页查询抛出异常,代码片段如下:

    1.CS代码中:

     Dc.Set<T>().Skip(1).Take(2).ToList()

    2.异常日志:

    MySql.Data.MySqlClient.MySqlException: Undeclared variable: __p_2

    生成的SQL:

     SELECT `a`.`menu_id`, `a`.`action`, `a`.`controller`, `a`.`menu_name`, `a`.`module`, `a`.`orders`, `a`.`parentid`
                  FROM (
                      select * from bq_manage.app_admin_menu
                  ) AS `a`
                  LIMIT __p_2

    这个语句生成的很奇怪,明明有分页两个参数,缺只生成了 Take(2)对应的参数名,.Skip(1)对应的参数没见生成;

    但这是写 Dc.Set<T>().Skip(1).ToList(); 又不会生成   LIMIT __p_1 参数,会查询所有表记录

    直接写 Dc.Set<T>().Skip(1).ToList(); 直接报错了,错误和上面的一样,Undeclared variable: __p_2,在迭代查询中,有未声明的变量。

    没有童鞋碰到过类似的问题,或者有一些错误方向的建议,求指导,非常感谢!!!!

    注:Dc=EFDataContext

    2016年11月10日 16:17

全部回复