在上一篇文章中有提怎么创建框架,今天主要说一些复杂的查询,也是多表的查询
框架里的查询都是Linqlambda操作。下面就来看一些代码

1.建立连接
var user_city_province = context.Query<User>().InnerJoin<City>((user, city) => user.CityId == city.Id).InnerJoin<Province>((user, city, province) => city.ProvinceId == province.Id);
 上面建立连接是一个三表连接查询,如需要更多的查询,在后继续添加,下边也是一种建立连接多表查询,但本人感觉很复杂
    IQuery<User> users = context.Query<User>();IQuery<Product> products = context.Query<Product>();IJoiningQuery<User, Product> user_product = users.InnerJoin(products, (user, product) => user.ID == product.c_admin_ID);
2. 查询信息
 返回所有的字段
//调用Tolist就返回new里面的list集合,返回所有的信息
var linked= user_city_province.Select((user, city, province) => new
{User = user,City = city,Province = province
});
var result = linked.Where(a => a).ToList();
----生成的SQL语句
select Users.Id as Id,Users.Name as Name,Users.Gender as Gender,Users.Age as Age,Users.cityId as cityId,Users.OpTime as OpTime,city.Id as Id0,city.Name as Name0,city.ProvinceId as ProvinceId,Province.Id as Id1,Province.Name as Name1  from Users as Users
left join city as city  on Users.cityId = city.Id
left join Province as  Province on city.ProvinceId = Province.Id
where Users.Id = 1
 如果不想返回所有字段,可以使用以下的方法
//返回的字段,都是指定的字段
var result1 = qq.Where(a => a.User.Id == 1).Select(a => new { UserId = a.User.Id, UserName = a.User.Name, CityName = a.City.Name, ProvinceName = a.Province.Name }).ToList();
//可以获取指定的字段
user_city_province.Select((user, city, province) => new
{UserId = user.Id,UserName = user.Name,CityName = city.Name,ProvinceName = province.Name
}).Where(a => a.UserId == 1).ToList();
---生成的 sql语句 只会包含 所需的字段
SELECT [Users].[Id] AS [UserId],[Users].[Name] AS [UserName],[City].[Name] AS [CityName],[Province].[Name] AS [ProvinceName] FROM [Users] AS [Users] INNER JOIN [City] AS [City] ON [Users].[CityId] = [City].[Id] INNER JOIN [Province] AS [Province] ON [City].[ProvinceId] = [Province].[Id] WHERE [Users].[Id] = 1

本人后续还会更新这篇文章,敬请期待。。。。。。

Chloe.Orm多表连接查询 (二)相关推荐

  1. mysql 连接查询两个条件_MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习...

    一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不可能把所有的数据都放到一张表里面,肯定要分表来存数据,这样节 ...

  2. 二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)

    MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类:1)sql ...

  3. 基于JPA实现多表连接查询

    基于 JPA 显示城市信息 一.JPA JPA 定义 二.任务 实战 1.项目结构 2.项目配置信息 3.实体 4.映射 5.控制器 6.UI 三.效果图 一.JPA JPA 定义 Java 持久化 ...

  4. SQL多表连接查询(具体实例)

    本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图例如以下: 表2:course  截图例如以下: (此时这样建表仅仅是为了演示连接SQL语句.当然实际开发中我们 ...

  5. SQL多表连接查询(详细实例)

    本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表, ...

  6. python怎样实现多表连接_Python Day45多表连接查询

    一.多表连接查询 1 交叉连接:不适用任何匹配条件.生成笛卡尔积 mysql> select * fromemployee,department;+----+------------+----- ...

  7. server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...

    4.1.查询的类型 declare @value as int set @value = 50 select  'age:'as age,2008 years,@valueas va --这种查询时跟 ...

  8. oracle表连接查询逗号隔开_Oracle多表连接查询

    连接:将一张表中的行按照某种条件和另一张表中的行连接起来形成一个新行的的过程. 根据连接查询返回的结果,分为3类: 内连接(inner join) 外连接(outer join) 交叉连接(cross ...

  9. node.js使用Sequelize实现多表连接查询

    一.表结构及关联关系:部门表(department)和员工表(staff)之间是一对多关系     1.department表     2.staff表 二.表对应的模型     1.Departme ...

  10. (四)sql多表连接查询join on的用法

    (四)sql多表连接查询join on的用法总结 需要用到的表信息如下: EMP职员表: dept部门信息表和salgrade薪资等级表: 1. 多表连接 没有任何条件限制,即笛卡儿积,产生的记录数目 ...

最新文章

  1. 中国电子信息工程科技发展十四大趋势(2021)
  2. javascript:document的属性和方法,title,innerHTML,
  3. 服务端关闭session的重要性
  4. Java线性池的使用方式以及核心运行原理
  5. 服务器响应时延,服务器响应时延
  6. micropython实现多任务_python多任务处理
  7. 赣南师范学院数学竞赛培训第02套模拟试卷参考解答
  8. ueditor使用-图片上传正常,图片显示异常404
  9. php正则表达式函数案例,PHP正则表达式函数preg_replace用法实例分析
  10. LeetCode 430. 扁平化多级双向链表(DFS)
  11. epoll边缘触发_4.2.3、epoll:水平触发与边缘触发
  12. python做的数据图表怎么在flask中显示_Python:如何在Flask应用程序的表中显示MySQL查询的数据...
  13. 基于JAVA+SpringMVC+Mybatis+MYSQL的政务信息管理系统
  14. 函数定义、函数的参数、函数的默认参数
  15. python标准库 对socket二次封装_Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服...
  16. 一些值得注意的算法题——动态规划
  17. Geotools之“Hello World”——打开本地shp文件并显示
  18. MS SQL 语句中的字符串连接
  19. stochastic noise and deterministic noise
  20. 安徽合肥一共享单车堆放点发生火灾

热门文章

  1. FAT32文件系统学习(1) —— BPB的理解
  2. 别做正常的傻瓜---奚恺元 随记2017-12-6周三
  3. 怎么把视频和图片拼在一起?朋友圈会动的拼图视频,快速制作技巧
  4. [深度学习工具]·FoolNLTK 中文处理工具包使用教程
  5. twitter注册不了_如何阻止Twitter重点阻止不相关的通知
  6. Android实现Twitter登录分享
  7. 什么是Usenet | 第2部分
  8. U盘为什么出现0字节?如何解决U盘0字节
  9. 关于互联网之技术总监工作的职责职能比较好的文章收集
  10. CSPs-2020 游记