Bitter.Core系列六:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 DataTable 模型转换
标签:etc fst sele tco 数据集 指定 fadd 名称 arc
当我们查询之前,我们先构造一个查询对象的输出DTO。如下图代码:
public class TScoreSearchDto
{
///
/// 分数
///
public Int32 FScore { get; set; }
///
/// 学生名称
///
public String studentName { get; set; }
///
/// 班级名称
///
public String className { get; set; }
///
/// 年级名称
///
public String gradeName { get; set; }
}
当我们构建完DTO 输出Dto 后,我就可以pagequery 最后查询的到数据集(DataTable) 通过 DataTable 的 ToList 扩展方法 轻而易举的转换到List 数据集合中,供上层使用。如下代码的最后一行所示:
public List 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");
}
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(); //ToList() DataTable-->List 的模型转换
#endregion
}
Bitter.Core系列六:Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 之 示例 DataTable 模型转换
标签:etc fst sele tco 数据集 指定 fadd 名称 arc
原文地址:https://www.cnblogs.com/davidchildblog/p/14281547.html
评论