SqlSugar多级查询
直接上代码
//一级关联查询,直接通过字表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多级查询相关推荐
- SqlServer教程四:SqlSugar的查询
查询用例 1.简单示例 查所有.查单 条.聚合函数.是否存在 .模糊查询等例子 var getAll = db.Queryable().ToList();//查询所有 var top10= db.Qu ...
- php多级查询,MySQL 多级查询
MySQL 多级查询 需求1:在一个select 查询集中再次查询 SELECT * from (SELECT field from table) AS alias 需要注意后面的alias,在mys ...
- SqlSugar常用查询实例-拉姆达表达式
SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表SqlSugarClient db = SugarContext.GetInstance() ...
- sqlsugar模糊查询
首先我是在基本的增删改查实现的基础是上,做的这个按照名字模糊查询,其实按照任意一个字段都可以. 这个模糊查询和模糊查询的总条数,都是sqlsugar官网提供的方法. var res = db.Quer ...
- mysql 单表多级查询_mysql单表与多表查询
单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ... ...
- SqlSugar函数查询
class Program { static SugarDbContext sugar = new SugarDbContext(); static void ...
- 比较爽的导航查询 功能 .NET ORM / SqlSugar
美女镇楼! .NET ORM 新概念导航 今天这篇文章分享一款好用简单的ORM框架 SqlSugar ,相比 EF Core的导航查询 更加简单 ,配置更加容易,几分钟就能上手. 1.导航查询特点 作 ...
- Spring Data JPA 实例查询
转自:https://www.cnblogs.com/rulian/p/6533109.html 一.相关接口方法 在继承JpaRepository接口后,自动拥有了按"实例"进行 ...
- mysql jpa 正则_Spring Data JPA 实例查询
数量:1 刘芳 三.认识"实例查询" 1.概念定义: 上面例子中,是这样创建"实例"的:Example ex = Example.of(customer, ma ...
最新文章
- 剑指offer-栈的压入、弹出序列
- PHP中的预定义常量和魔术常量
- string 转化 xml,并找到指定节点及节点值
- 数据结构之图的基本操作
- ps拖拽组的时候,不卡 - 软件设置篇
- 自动化数据增强:实践、理论和新方向
- oracle视频教程 任务,Oracle基础教程(两位专家手把手教你完成各种常见任务)
- 9.深入分布式缓存:从原理到实践 --- Tair探秘
- Unity开发——CPU优化篇
- 阿里巴巴java开发手册-嵩山版 下载
- 免费html转换成word,如何免费将网页内容转成Word文档
- python输出dat格式_输出dat文件
- 计算营业额python_告诉你怎么用Python进行企业营运分析!盈利这么多?
- wei dian 使用的一点小技巧
- TDSQL携手金蝶云·苍穹,发布“国产数据库联合解决方案”
- PanDownload 3.5.1 卢本伟修改版
- js 按拼音 首字母 排序 并分组
- bit,Byte,Word,DWORD(DOUBLE WORD,DW)
- SOCKET - 实现任意 HTTPS 站点代理, 支持篡改内容
- html js 去广告,畅言去广告:修改JS引用地址去掉畅言广告