0
我正在使用asp.net webapi的现有项目,我是Linq的新手,所有编写项目代码的团队都离开了。linq表达式函数的动态排序
我有一个像在Web API controlller一个funtion:
public IQueryable<AccessTypeDTO> GetAccessTypes(int pageIndex = 1, int pageSize = 25)
{
var model = db.AccessTypes.AsQueryable();
return model.Select(AccessTypeDTO.SELECT).Take(pageSize);
}
的AccessTypeDTO
我们的视图模型,我们有域模型是基于EF
的AccessType
DM是如下:
AccessTypeDTO
VM的映射和获取数据如下
public class AccessTypeDTO
{
public int AccessTypeID { get; set; }
public string AccessTypeName { get; set; }
public static System.Linq.Expressions.Expression<Func<AccessType, AccessTypeDTO>> SELECT =
x => new AccessTypeDTO
{
AccessTypeID = x.AccessTypeID,
AccessTypeName = x.AccessTypeName
};
}
我的新任务,以实现对结果分页和秩序,所以我的网络API函数应该如下:
public IQueryable<AccessTypeDTO> GetAccessTypes(int pageIndex = 1, int pageSize = 25, string orderBy = "AccessTypeID")
{
var collection= db.AccessTypes.AsQueryable();
return collection.Select(AccessTypeDTO.SELECT).Skip((pageIndex - 1) * pageSize).Take(pageSize);
}
主要的问题是在我建立了跳过功能的功能要求收集“收集”在跳过之前进行排序。 那么我如何分类这个集合呢? 请注意,我有超过一百个控制器被更新,并有这样的分页和排序,我没有时间为每个控制器编写服务,并为每列写入开关,做分类
谢谢亲爱的。我认为跳过应该是:.Skip((pageIndex - 1)* pageSize).Take(pageSize); 如何按字段动态订购订单? – Mohammad