当前位置:  开发笔记 > 编程语言 > 正文

跳过并且不使用MySQL EntityFrameworkCore

如何解决《跳过并且不使用MySQLEntityFrameworkCore》经验,为你挑选了1个好方法。

我试图Products从MySQL数据库分页,但如果我使用Skip()Take()它返回一个空的Json数组作为我的web api响应像这样

[]

但是扩展方法,如FirstOrDefault(),Where()...工作正常.这是代码片段:

public IActionResult GetPage(int page, int pageSize = 2)
{            
    int productCount = _context.Products.Count(); // 5
    float totalPages = (float)Math.Ceiling((float)productCount / pageSize); //2.5 -- round to 3

    if (page < 1 || page > totalPages) return NotFound();
    var products = _context.Products.Skip((page - 1) * pageSize).Take(pageSize); //skip & take err mysql ef

    return Ok(products);
}

我甚至.Skip(1).Take(2)没有运气地硬编码查询.有人遇到过这个问题或者知道解决方法吗?



1> abdul..:

原来这MySql.Data是Oracle提供的EF连接器中的一个错误,错误详细信息发布在这里.

替代方案:

我改叫另一个连接器柚,现在SkipTake工作完全正常.您可以搜索nuget Pomelo.EntityFrameworkCore.MySql并为您的项目安装适当的版本.

要使用,只需更改.UseMySQL.UseMySql配置时DbContext,因为oracle连接器使用SQL和pomelo Sql只使用套管不同.

services.AddDbContext(options =>
    options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有