码迷,mamicode.com
首页 > Web开发 > 详细

Bitter.Core系列六:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 DataTable 模型转换

时间:2021-01-16 11:43:19      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:etc   fst   sele   tco   数据集   指定   fadd   名称   arc   

当我们查询之前,我们先构造一个查询对象的输出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
    
}

Bitter.Core系列六:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 DataTable 模型转换

标签:etc   fst   sele   tco   数据集   指定   fadd   名称   arc   

原文地址:https://www.cnblogs.com/davidchildblog/p/14281547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!