FreeSql学习笔记——8.数据返回类型
前言
FreeSql数据返回格式比较丰富,包括单条、列表、导航属性数据、指定字段、Dto等;可以有效的减少代码量,减少字段复制等操作;
前面的查询已经用到了日常基本需要用到的数据格式,本篇是常用格式的总结;
数据格式
首先是最简单的查询单条数据,FreeSql提供了两个获取单条数据的方式,获取到的就是一个实体对象:
_freeSql.Select<Student>().ToOne();
_freeSql.Select<Student>().First();
列表
列表与单条记录是使用最为频繁的结构了,获取到的是一个实体对象的集合:
_freeSql.Select<Student>().ToList();
注意:FreeSql中约定ToOne/First或的结果要么空,要么是实体对象;而Tolist返回的结果为非空的List<Entity>。
导航属性
使用联表查询在生成sql时会将表关联起来查询,返回的结果会将关联的表数据填充到导航属性中
_freeSql.Select<Student>().LeftJoin(x => x.Class.Id == x.ClassId).First();
_freeSql.Select<Student>().LeftJoin(x => x.Class.Id == x.ClassId).ToList();
指定字段
当查询的结果只需要其中某些字段的时候使用,减少查询字段,优化sql语句
_freeSql.Select<Student>().ToList(x => new { x.Id, x.Name });
分页
分页也是常用的数据格式,主要在返回的数据集较多,控制查询的数量时用到
_freeSql.Select<Student>().Page(1, 10).ToList();
Dto
结果集拼装Dto,可以有效的减少代码赋值操作,FreeSql获取结果的时候可以帮助完成Dto的映射。
_freeSql.Select<Student>().ToList<StudentDto>();//RegistTime未赋值导致值为0001/01/01
//纠正映射字段
_freeSql.Select<Student>().ToList(x => new StudentDto { RegistTime = x.AddTime });//将AddTime映射到RegistTime字段上
以上为常用的数据的返回格式,当然FreeSql支持的返回格式不止于此,有兴趣可以深入了解http://freesql.net/guide/select-return-data.html