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