直接上代码

            //一级关联查询,直接通过字表ID查询字表实体信息var user = Db.Queryable<SysUser>().Where(it => it.UserCode == userCode).Mapper(it=>it.employee, it => it.EmployeeId).ToList();//多级关联查询一,USER-->EMPLOYEE-->DEPARTMENT   user.employee.departmentvar user1 = Db.Queryable<SysUser>().Where(it => it.UserCode == userCode).Mapper((it, cache) =>{it.employee = cache.GetListByPrimaryKeys<Employee>(ea => ea.EmployeeId).FirstOrDefault<Employee>();if (it.employee != null)it.employee.department = cache.GetListByPrimaryKeys<Department>(ed => it.employee.DepartmentId).FirstOrDefault<Department>();}).ToList();//多级关联查询二,USER-->EMPLOYEE-->DEPARTMENT   user.employee.departmentvar list = Db.Queryable<SysUser, Employee, Department>((U, E, D) => new object[] {JoinType.Left,U.EmployeeId==E.EmployeeId,JoinType.Left,E.DepartmentId == D.DepartmentId}).Where((U, E, D) => U.UserCode == userCode).Select((U, E, D) => new { U = U, E = E, D = D }).ToList();var user2 = new SysUser();user2.employee = new Employee();user2.employee.department = new Department();user2 = list[0].U;user2.employee = list[0].E;user2.employee.department = list[0].D;

表结构


/// <summary>
/// 用户表
/// </summary>
public class SysUser
{private System.Guid _UserId;/// <summary>/// /// </summary>[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]public System.Guid UserId { get { return this._UserId; } set { this._UserId = value; } }private System.String _UserName;/// <summary>/// /// </summary>public System.String UserName { get { return this._UserName; } set { this._UserName = value?.Trim(); } }private System.String _UserCode;/// <summary>/// /// </summary>public System.String UserCode { get { return this._UserCode; } set { this._UserCode = value?.Trim(); } }private System.Guid _EmployeeId;/// <summary>/// /// </summary>public System.Guid EmployeeId { get { return this._EmployeeId; } set { this._EmployeeId = value; } }private System.String _PassWord;/// <summary>/// /// </summary>public System.String PassWord { get { return this._PassWord; } set { this._PassWord = value?.Trim(); } }private Employee _employee;[SugarColumn(IsIgnore = true)]public Employee employee { get { return this._employee; } set { this._employee = value; } }
}

/// <summary>
/// 部门表
/// </summary>
public class Department
{private System.Guid _DepartmentId;/// <summary>/// 部门ID/// </summary>[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]public System.Guid DepartmentId { get { return this._DepartmentId; } set { this._DepartmentId = value; } }private System.String _RepealRemark;/// <summary>/// 撤消原因/// </summary>public System.String RepealRemark { get { return this._RepealRemark; } set { this._RepealRemark = value?.Trim(); } }private System.Guid _ParentId;/// <summary>/// 上级部门/// </summary>public System.Guid ParentId { get { return this._ParentId; } set { this._ParentId = value; } }private System.String _Code;/// <summary>/// 部门编码/// </summary>public System.String Code { get { return this._Code; } set { this._Code = value?.Trim(); } }private System.String _Name;/// <summary>/// 部门名称/// </summary>public System.String Name { get { return this._Name; } set { this._Name = value?.Trim(); } }
}
/// <summary>
/// 员工
/// </summary>
public class Employee
{private System.Guid? _InnerEmployee;/// <summary>/// 内部介绍人/// </summary>public System.Guid? InnerEmployee { get { return this._InnerEmployee; } set { this._InnerEmployee = value; } }private System.DateTime _CertificateLimit;/// <summary>/// 证件有效期/// </summary>public System.DateTime CertificateLimit { get { return this._CertificateLimit; } set { this._CertificateLimit = value; } }private System.DateTime _JobDate;/// <summary>/// 入职日期(首次入职)/// </summary>public System.DateTime JobDate { get { return this._JobDate; } set { this._JobDate = value; } }private System.Guid _EmployeeId;/// <summary>/// 员工ID/// </summary>[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]public System.Guid EmployeeId { get { return this._EmployeeId; } set { this._EmployeeId = value; } }private System.String _CnName;/// <summary>/// 中文名称/// </summary>public System.String CnName { get { return this._CnName; } set { this._CnName = value?.Trim(); } }private System.String _IDCardNo;/// <summary>/// 证件号码/// </summary>public System.String IDCardNo { get { return this._IDCardNo; } set { this._IDCardNo = value?.Trim(); } }private Department _department;[SugarColumn(IsIgnore = true)]public Department department { get { return this._department; } set { this._department = value; } }
}

SqlSugar多级查询相关推荐

  1. SqlServer教程四:SqlSugar的查询

    查询用例 1.简单示例 查所有.查单 条.聚合函数.是否存在 .模糊查询等例子 var getAll = db.Queryable().ToList();//查询所有 var top10= db.Qu ...

  2. php多级查询,MySQL 多级查询

    MySQL 多级查询 需求1:在一个select 查询集中再次查询 SELECT * from (SELECT field from table) AS alias 需要注意后面的alias,在mys ...

  3. SqlSugar常用查询实例-拉姆达表达式

    SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表SqlSugarClient db = SugarContext.GetInstance() ...

  4. sqlsugar模糊查询

    首先我是在基本的增删改查实现的基础是上,做的这个按照名字模糊查询,其实按照任意一个字段都可以. 这个模糊查询和模糊查询的总条数,都是sqlsugar官网提供的方法. var res = db.Quer ...

  5. mysql 单表多级查询_mysql单表与多表查询

    单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ... ...

  6. SqlSugar函数查询

    class Program     {         static SugarDbContext sugar = new SugarDbContext();         static void ...

  7. 比较爽的导航查询 功能 .NET ORM / SqlSugar

    美女镇楼! .NET ORM 新概念导航 今天这篇文章分享一款好用简单的ORM框架 SqlSugar ,相比 EF Core的导航查询 更加简单 ,配置更加容易,几分钟就能上手. 1.导航查询特点 作 ...

  8. Spring Data JPA 实例查询

    转自:https://www.cnblogs.com/rulian/p/6533109.html 一.相关接口方法 在继承JpaRepository接口后,自动拥有了按"实例"进行 ...

  9. mysql jpa 正则_Spring Data JPA 实例查询

    数量:1 刘芳 三.认识"实例查询" 1.概念定义: 上面例子中,是这样创建"实例"的:Example ex = Example.of(customer, ma ...

最新文章

  1. 剑指offer-栈的压入、弹出序列
  2. PHP中的预定义常量和魔术常量
  3. string 转化 xml,并找到指定节点及节点值
  4. 数据结构之图的基本操作
  5. ps拖拽组的时候,不卡 - 软件设置篇
  6. 自动化数据增强:实践、理论和新方向
  7. oracle视频教程 任务,Oracle基础教程(两位专家手把手教你完成各种常见任务)
  8. 9.深入分布式缓存:从原理到实践 --- Tair探秘
  9. Unity开发——CPU优化篇
  10. 阿里巴巴java开发手册-嵩山版 下载
  11. 免费html转换成word,如何免费将网页内容转成Word文档
  12. python输出dat格式_输出dat文件
  13. 计算营业额python_告诉你怎么用Python进行企业营运分析!盈利这么多?
  14. wei dian 使用的一点小技巧
  15. TDSQL携手金蝶云·苍穹,发布“国产数据库联合解决方案”
  16. PanDownload 3.5.1 卢本伟修改版
  17. js 按拼音 首字母 排序 并分组
  18. bit,Byte,Word,DWORD(DOUBLE WORD,DW)
  19. SOCKET - 实现任意 HTTPS 站点代理, 支持篡改内容
  20. html js 去广告,畅言去广告:修改JS引用地址去掉畅言广告

热门文章

  1. 宠物玩具上亚马逊美国站CPC认证标准
  2. 微信小程序 组件左右对齐
  3. java juc exchanger_JUC——Exchanger
  4. Python_爬虫基础
  5. Navicat查询结果中复制字段名和值
  6. 免费的自媒体辅助软件,辅助自媒体内容创作
  7. arduino安装esp8266库
  8. 关于录音以及音频的格式转换
  9. 简单留言管理平台实现中 包含的 MVC,另:javabean和servlet的区别
  10. 【Gitblit-IDEA】将现有项目设置为上传到Gitblit