zoukankan      html  css  js  c++  java
  • 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
        
    }
  • 相关阅读:
    Flash中先获取flv的尺寸然后再显示的方法
    雕虫小艺:Slider控件的制作(Flash)
    用几十行代码写一个可以在PC Web,PC桌面,安卓,iOS上运行的程序
    仰望星空,结果南辕北辙
    Flash播放mp4的两个问题:编码问题和需要下载完后才能播放的问题
    只学一点点:我的技术学习策略
    2012年计划
    提高ipad浏览器下大尺寸xml文件解析的性能
    html5/haXe开发偶感
    支点:技术选择的精髓
  • 原文地址:https://www.cnblogs.com/davidchildblog/p/14281547.html
Copyright © 2011-2022 走看看