国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 元朗区| 浏阳市| 丰城市| 调兵山市| 东阿县| 石泉县| 桓台县| 宣武区| 长沙市| 禄丰县| 武义县| 平度市| 景东| 盖州市| 镇江市| 阿拉善右旗| 和林格尔县| 彭州市| 思南县| 拉萨市| 青海省| 博罗县| 霞浦县| 双流县| 洪雅县| 弥勒县| 读书| 全南县| 宣恩县| 贵南县| 彭阳县| 全州县| 南澳县| 石楼县| 正定县| 合川市| 宾阳县| 华池县| 舒兰市| 维西| 共和县|