我正在使用实体框架核心。我有两个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()
在我的端点中对这些实体进行分页的常用代码,这在前端工作正常,每个实体都显示在它自己的网格中。
我已经被要求创建一个可过滤,可排序和可分页的网格,该网格在同一网格中包含AdvertisedSalary
和NegotiatedSalary
。我只需要显示基类属性,但是什么让我失望的是我如何对此进行分页?
例如,假设创建日期过滤器处于活动状态且页面大小为10.我可以从每个dbset获得前10个然后发回最新的10但是如果他们请求第8页呢?我能想到的唯一方法是创建2个集合,其中包含两个dbset中的每个记录,转换为基类然后对其进行排序并返回正确的页面。这将是一项非常密集的任务,并且会破坏对结果进行分页的目的。
这是唯一的方法吗?有没有办法按日期一起订购两个不同的数据集,然后用Skip()
或类似的方式返回正确的结果?