gpt4 book ai didi

c# - 综合排序/分页/过滤服务层接口(interface)方法

转载 作者:行者123 更新时间:2023-11-30 18:05:34 25 4
gpt4 key购买 nike

我正在尝试编写一个服务层方法,它将采用所有必要的参数,使我能够以 webforms 网格的工作方式从存储库中获取数据。

存储库返回 IQueryable<T> .

我想出了一个这样的模型:

public class PagedModel<T>
{
public GridSortOptions GridSortOptions { get; set; } //Enum for ASC and DESC
public IList<T> Items { get; set; }
public int Page { get; set; }
public int PageSize { get; set; }
}

方法:

PagedModel<User> GetUsers(Expression<Func<T,bool>> predicate, int page, int pageSize, GridSortOptions sortOption);

问题:

  1. 此方法缺少哪些参数?
  2. PagedModel 缺少哪些属性?
  3. 如何实现该方法?

我想要的:

  1. 寻呼
  2. 排序
  3. 过滤

最佳答案

我发现有时创建一个包含与您要搜索的项目列表分开的所有属性的“Criteria”类很好。通过这种方式,您可以将其用作模型属性,该属性将自动绑定(bind)到您的搜索操作,将其传递给服务和存储库方法(而不是一堆单独的参数),如果需要,将其保留在 session 中,具有强类型的过滤器属性特定于您正在搜索的当前类型(即用户),具有用于保存通用分页或排序的父类(super class)型。

有点像

public class UserCriteria
{
public GridSortOptions GridSortOptions { get; set; } //Enum for ASC and DESC
public int Page { get; set; }
public int PageSize { get; set; }
public bool? IsActive { get; set; }
public string UserName { get; set; }
}

关于c# - 综合排序/分页/过滤服务层接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5454558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com