国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET MVC5網(wǎng)站開發(fā)之用戶添加和瀏覽2(七)

2024-07-10 12:46:48
字體:
供稿:網(wǎng)友

一、數(shù)據(jù)存儲層

1、查找分頁列表

在寫用戶列表時遇到了問題,考慮到用戶可能會較多的情況需要分頁,在數(shù)據(jù)存儲層寫的方法是public IQueryable<T> FindPageList<TKey>(int pageSize, int pageIndex, out int totalNumber, Expression<Func<T, bool>> where, Expression<Func<T, TKey>> order, bool asc)。

主要問題就在紅色的order這兒,這個參數(shù)不好傳遞,比如:如果是已ID來排序哪TKey類型是int,如果以注冊時間來排序哪TKey類型就是datetime。如果我在業(yè)務(wù)邏輯層寫一個函數(shù)可以支持選擇排序類型,那么我沒有辦法聲明一個變量既可以存儲TKey為int的值,又可以存儲datetime的值,那么排序就要寫成下面這個樣子,感覺不舒服。

//排序      switch(order)      {        case 0://ID升序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.UserID, true).ToList();          break;        case 1://ID降序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.UserID, false).ToList();          break;        case 2://注冊時間降序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.RegTime, true).ToList();          break;        case 3://注冊時間升序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.RegTime, false).ToList();          break;        case 4://最后登錄時間升序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.LastLoginTime, true).ToList();          break;        case 5://最后登錄時間降序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.LastLoginTime, false).ToList();          break;        default://ID降序          _users.Items = Repository.FindPageList((int)pageSize, (int)pageIndex, out _users.TotalNumber, _where, u => u.UserID, false).ToList();          break;      }

后來將TKey設(shè)為dynamic類型,不論Expression<Func<T, dynamic>> order = u => u.UserID  或者u => u.RegTime都可以編譯通過,但是一運行就會出錯。

前幾天沒寫博客一直在考慮這個問題,后來還是換成用字符串的方式來動態(tài)排序。 步驟如下:

Ninesky.DataLibrary[右鍵]->添加->類,輸入類名OrderParam

namespace Ninesky.DataLibrary{  /// <summary>  /// 排序參數(shù)  /// </summary>  public class OrderParam  {    /// <summary>    /// 屬性名    /// </summary>    public string PropertyName { get; set; }    /// <summary>    /// 排序方式    /// </summary>    public OrderMethod Method { get; set; }  }  /// <summary>  /// 排序方式  /// </summary>  public enum OrderMethod  {    /// <summary>    /// 正序    /// </summary>    ASC,    /// <summary>    /// 倒序    /// </summary>    DESC  }}            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 治县。| 新密市| 衢州市| 筠连县| 嘉荫县| 巴彦淖尔市| 文山县| 琼结县| 礼泉县| 嘉义市| 怀化市| 来宾市| 阳谷县| 鄂托克前旗| 吉首市| 泰州市| 宣化县| 蒙山县| 黔东| 万宁市| 张家口市| 沐川县| 怀柔区| 遂平县| 城口县| 靖西县| 资兴市| 禹城市| 泰顺县| 湘西| 乌鲁木齐市| 临海市| 皮山县| 宜川县| 兖州市| 泰州市| 大庆市| 当阳市| 大余县| 新余市| 图们市|