Skip to content

分页查询

  • 系统默认生成的分页查询方法如下:
cs
/// <summary>
/// 分页获取数据
/// </summary>
/// <param name="whereExp">查询条件表达式 Item1: 主表查询条件表达式, Item2: 导航表查询条件集合</param>
/// <param name="pageIndex">页标, 默认1</param>
/// <param name="pageSize">页数, 默认10</param>
/// <param name="orderByFields">排序字段, 如name asc,age desc</param>
/// <returns></returns>
public async Task<PageModel<EquipmentMaintenancePlan>> GetWithPage((Expression<Func<EquipmentMaintenancePlan, bool>>, List<FormattableString>) whereExp
    , int pageIndex, int pageSize, string orderByFields = "")
{
    var data = await _equipmentMaintenancePlanRepository.QueryIncludesPage(whereExp.Item1, pageIndex, pageSize, null, orderByFields);
    return data;
}
/// <summary>
/// 分页获取数据
/// </summary>
/// <param name="whereExp">查询条件表达式 Item1: 主表查询条件表达式, Item2: 导航表查询条件集合</param>
/// <param name="pageIndex">页标, 默认1</param>
/// <param name="pageSize">页数, 默认10</param>
/// <param name="orderByFields">排序字段, 如name asc,age desc</param>
/// <returns></returns>
public async Task<PageModel<EquipmentMaintenancePlan>> GetWithPage((Expression<Func<EquipmentMaintenancePlan, bool>>, List<FormattableString>) whereExp
    , int pageIndex, int pageSize, string orderByFields = "")
{
    var data = await _equipmentMaintenancePlanRepository.QueryIncludesPage(whereExp.Item1, pageIndex, pageSize, null, orderByFields);
    return data;
}
  • 以上方法,对于单表的查询没有问题,如果前端需要查询关联表的数据,并且传入了关联表的查询参数,可以使用以下方法:
cs
/// <summary>
/// 分页获取数据
/// </summary>
/// <param name="whereExp">查询条件表达式 Item1: 主表查询条件表达式, Item2: 导航表查询条件集合</param>
/// <param name="pageIndex">页标, 默认1</param>
/// <param name="pageSize">页数, 默认10</param>
/// <param name="orderByFields">排序字段, 如name asc,age desc</param>
/// <returns></returns>
public async Task<PageModel<EquipmentMaintenancePlan>> GetWithPage((Expression<Func<EquipmentMaintenancePlan, bool>>, List<FormattableString>) whereExp
    , int pageIndex, int pageSize, string orderByFields = "")
{
    var data = await _equipmentMaintenancePlanRepository.QueryIncludesPage(whereExp.Item1, pageIndex, pageSize, null, orderByFields
                            , whereExp.Item2, x => x.EquipmentItemForm); // 关联 EquipmentItemForm 表
    return data;
}
/// <summary>
/// 分页获取数据
/// </summary>
/// <param name="whereExp">查询条件表达式 Item1: 主表查询条件表达式, Item2: 导航表查询条件集合</param>
/// <param name="pageIndex">页标, 默认1</param>
/// <param name="pageSize">页数, 默认10</param>
/// <param name="orderByFields">排序字段, 如name asc,age desc</param>
/// <returns></returns>
public async Task<PageModel<EquipmentMaintenancePlan>> GetWithPage((Expression<Func<EquipmentMaintenancePlan, bool>>, List<FormattableString>) whereExp
    , int pageIndex, int pageSize, string orderByFields = "")
{
    var data = await _equipmentMaintenancePlanRepository.QueryIncludesPage(whereExp.Item1, pageIndex, pageSize, null, orderByFields
                            , whereExp.Item2, x => x.EquipmentItemForm); // 关联 EquipmentItemForm 表
    return data;
}

同时, 前端关联表的字段需要以数组形式书写, 以下是对应前端columns.tsx文件中的代码:

ts
export const baseColumns: TableColumn[] = [
  // ... 省略其他字段
 {
    title: '项目表单',
    dataIndex: ['equipmentItemForm', 'name'], // 注意这里
    width: 200,
    ellipsis: true,
    resizable: true,
  },
  // ... 省略其他字段
]
export const baseColumns: TableColumn[] = [
  // ... 省略其他字段
 {
    title: '项目表单',
    dataIndex: ['equipmentItemForm', 'name'], // 注意这里
    width: 200,
    ellipsis: true,
    resizable: true,
  },
  // ... 省略其他字段
]