Bitter.Core系列六:Bitter ORM NETCORE ORM 全網最粗暴簡單易用高性能的 NETCore ORM 之 示例 DataTable 模型轉換


當我們查詢之前,我們先構造一個查詢對象的輸出DTO。如下圖代碼:

public class TScoreSearchDto
    {
        /// <summary>
        /// 分數
        /// </summary>
        public  Int32 FScore { get; set; }

        /// <summary>
        /// 學生名稱
        /// </summary>        
        public  String studentName { get; set; }

        /// <summary>
        /// 班級名稱
        /// </summary>
        public  String className { get; set; }
        /// <summary>
        /// 年級名稱
        /// </summary>
        public String gradeName { get; set; }
        
    }


當我們構建完DTO 輸出Dto 后,我就可以pagequery 最后查詢的到數據集(DataTable) 通過 DataTable 的 ToList 擴展方法 輕而易舉的轉換到List 數據集合中,供上層使用。如下代碼的最后一行所示:

public List<TScoreSearchDto> getScoreList()
{
   #region //聚聯條件分頁查詢 

var type = 1; //非關鍵代碼,用於下面演示代碼用 

var studentname = "H"; //非關鍵代碼,用於下面演示代碼用

var sql = @"SELECT   score.FScore,student.FName  as studentName,class.FName as className,grade.FName as  gradeName FROM  dbo.t_StudentScore score
            LEFT JOIN dbo.t_student student  ON score.FStudentId = student.FID
            LEFT JOIN dbo.t_class class ON  student.FClassId=class.FID
            LEFT  JOIN dbo.t_Grade grade ON  grade.FID=class.FGradeId
            "; 
PageQuery pq = new PageQuery(sql,null); 

 pq.Where("1=1");

if (type == 1)
{
    pq.Where("score.FScore>60 ");
}
if (type == 2)
{
    pq.Where("score.FScore>60 and score.FScore<80 ");
}
if (!string.IsNullOrEmpty(studentname))
{
    pq.Where(" student."FName like '%'+@FScoreName+'%'",new {FScoreName=studentname}});
}

//通過ThenAsc 方法指定字段排序
pq.ThenASC("score.FScore ");

//通過ThenDESC 方法指定字段排序
pq.ThenDESC("student.FName");

//自己直接指定排序字段和排序關鍵詞
pq.OrderBy("student.FAddTime desc");   

//分頁指定 Skip: 當前頁,Take :每頁數量
pq.Skip(1).Take(10);   

var dt=   pq.ToDataTable(); //獲取數據

var studentscount=  pq.Count(); //獲取當前條件下的數量
  
  
 return dt.ToListModel<TScoreSearchDto>(); //ToList<T>() DataTable-->List<T> 的模型轉換


 #endregion
    
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM