将2个不同的实体集合一起分页

时间:2018-02-01 01:28:52

标签: c# entity-framework asp.net-core .net-core entity-framework-core

我正在使用实体框架核心。我有两个dbset,它们都继承自同一个父类。

public abstract class Salary
{
    public int Id { get; set; }
    public DateTime CreateDate { get; set; } = DateTime.Now;
    public decimal RegularRate { get; set; }
    public decimal OvertimeRate { get; set; }    

}

public class AdvertisedSalary : Salary
{
    //additional properties
}

public class NegotiatedSalary : Salary
{
    //additional properties
}

我已经创建了使用Skip()在我的端点中对这些实体进行分页的常用代码,这在前端工作正常,每个实体都显示在它自己的网格中。

我已经被要求创建一个可过滤,可排序和可分页的网格,该网格在同一网格中包含AdvertisedSalaryNegotiatedSalary。我只需要显示基类属性,但是什么让我失望的是我如何对此进行分页?

例如,假设创建日期过滤器处于活动状态且页面大小为10.我可以从每个dbset获得前10个然后发回最新的10但是如果他们请求第8页呢?我能想到的唯一方法是创建2个集合,其中包含两个dbset中的每个记录,转换为基类然后对其进行排序并返回正确的页面。这将是一项非常密集的任务,并且会破坏对结果进行分页的目的。

这是唯一的方法吗?有没有办法按日期一起订购两个不同的数据集,然后用Skip()或类似的方式返回正确的结果?

0 个答案:

没有答案