前言

  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

FreeSql学习笔记——8.数据返回类型的更多相关文章

  1. MySQL学习笔记之数据存储类型

    说明:本文是作者对MySQL数据库数据存储类型的小小总结. Numeric Type (数字类型) 1.TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT主要根据存储字节长度不 ...

  2. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  3. GIS案例学习笔记-CAD数据分层导入现有模板实例教程

    GIS案例学习笔记-CAD数据分层导入现有模板实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 原始数据: CAD数据 目标模板 2. 任务:分5个图层 ...

  4. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

  5. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  6. #学习笔记#JSP数据交互

    #学习笔记#JSP数据交互 数据库的使用方式:   当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在 ...

  7. ArcGIS案例学习笔记_3_2_CAD数据导入建库

    ArcGIS案例学习笔记_3_2_CAD数据导入建库 计划时间:第3天下午 内容:CAD数据导入,建库和管理 目的:生成地块多边形,连接属性,管理 问题:CAD存在拓扑错误,标注位置偏移 教程:pdf ...

  8. ArcGIS案例学习笔记-CAD数据自动拓扑检查

    ArcGIS案例学习笔记-CAD数据自动拓扑检查 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:针对CAD数据,自动进行拓扑检查 优点:类别:地理建模项目实例 ...

  9. Iris请求方式和数据返回类型

    1. Iris起服务 package main import "github.com/kataras/iris" func main() { //1.创建app结构体对象 app ...

  10. C++ 学习笔记 变量和基本类型(一)

    C++ 学习笔记 一.变量和基本类型概述 类型是所有程序的基础.类型告诉我们数据代表什么意思以及可以对数据执行哪些操作. c++基本类型: 字符型 整型 浮点型 c++ 还提供了可用于自定义数据类型的 ...

随机推荐

  1. vue3-setup中使用响应式

    基本类型的响应式数据 在 Vue 3 中,ref是一个函数,用于创建响应式的数据.它主要用于处理基本类型(如数字.字符串.布尔值等)的数据响应式 当我们调用 ref 函数时,会返回一个包含一个 .va ...

  2. Input报错“Form elements must have labels: Element has no title attribute Element has no placeholde”

    喵~ 项目开发难免会遇到些不解的问题,以下总结的是简化版,重在复现问题,解决问题. 写表单时,如果只是单独写了input元素,发现在后台管理会飘红.感觉很奇怪,明明没有写错语法,为什么会飘红呢? 1. ...

  3. 题解:AT_abc382_c [ABC382C] Kaiten Sushi

    题目传送门 思路 首先看一下数据范围. \(1 \leq N, M \leq 2 \times 10^5\) \(1 \leq A_i, B_i \leq 2 \times 10^5\) 这么大的数据 ...

  4. cas5配置redis

    ​POM文件加载redis依赖,重新maven clean package <dependency> <groupId>org.apereo.cas</groupId&g ...

  5. 记一个注意事项:从 forEach argument 返回的 Promise 被忽略

    举例说明: const arr = [1, 2, 3] arr.forEach(async item => { // ... }) 上面的代码校验会出一个警告,从 forEach argumen ...

  6. [转载] 十问 TiDB :关于架构设计的一些思考 TiDB

    做 TiDB 的缘起是从思考一个问题开始的:为什么在数据库领域有这么多永远也躲不开的坑?从 2015 年我们写下第一行代码,3 年以来我们迎面遇到无数个问题,一边思考一边做,尽量用最小的代价来快速奔跑 ...

  7. HTMLDivElement.prototype

    HTMLDivElement.prototype.test = function(){console.log("i am div")} $0.innerHTML = '<di ...

  8. localhost 宿主机访问

    ssh -N -f -L localhost8888:localhost:8888 hostname

  9. Spring Security并结合JWT实现用户认证(Authentication) 和用户授权(Authorization)

    引言在Web应用开发中,安全一直是非常重要的一个方面.Spring Security基于Spring 框架,提供了一套Web应用安全性的完整解决方案. JwT (JSON Web Token) 是当前 ...

  10. xcrun: error: unable to find utility "xctest", not a developer tool or in PATH

    Start Xcode, select "Preferences -> Locations". Chances are that your Command Line Tool ...