需要完成的查询逻辑:A表内联B表,B表左联C表,A表左联D表,并且 C表的TotalCount>23,D表的ClassHour>8,最后查出A表的Id,代码如下:

IQueryable<int> biz_AAA_IdQueryable = uow.Biz_AAA.GetAll()
.Join(uow.Biz_BBB.GetAll(), a => a.CertificateId, b => b.Id, (a, b) => new { a, b })
.GroupJoin(uow.Biz_CCC.GetAll(), o => o.b.IDNumber, c => c.IDNumber, (o, c) => new { o.a, o.b, c })
.SelectMany(cc => cc.c.DefaultIfEmpty(), (o, cc) => new { o.a, o.b, c = cc })
.GroupJoin(uow.Biz_DDD.GetAll(), o => o.a.Id, d => d.CertificateDelayApplyRecordId, (o, d) => new { o.a, o.b, o.c, d })
.SelectMany(dd => dd.d.DefaultIfEmpty(), (o, dd) => new { o.a, o.b, o.c, d = dd })
.Select(o => new
{
CertificateDelayApplyRecordId = o.a.Id,
CreateDate = o.a.CreateDate,
OnLineClassHour = o.c == null ? : o.c.TotalCount,
OffLineClassHour = o.d == null ? : o.d.ClassHour
})
.Where(o => o.OnLineClassHour > && o.OffLineClassHour > 8)
.Select(o => o.CertificateDelayApplyRecordId);

希望写的东西,能够帮到别人,自己在网上找了很久,用别人的写法,生成的时候,总是报错,后面自己研究了下,发现这个写法是OK的,生成的sql语句是我想要的语句。

用lambda表达式写左联查询的示例的更多相关文章

  1. 用lambda表达式写分组查询的示例

    需要完成的查询逻辑:查询A表中根据CertificateDelayApplyRecordId 分组,每条记录算8个课时,查询出每个CertificateDelayApplyRecordId已经学习了的 ...

  2. C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询

    1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...

  3. 动态创建Lambda表达式实现高级查询

    需求简介 最近这几天做的东西总算是回归咱的老本行了,给投资管理项目做一个台账的东西,就是类似我们的报表.其 中有一个功能是一个高级查询的需求,在查询条件方面大概有7.8个查询条件.需求就是如果一个条件 ...

  4. Lambda表达式动态组装查询条件

    最近比较闲,年底了,项目也进入尾声:每天就是维护一下系统,整理整理文档,整理知识点,这样才觉得有点意思: 问题 在使用Linq的where()查询的时候,不知道大家是怎么动态组装多个查询条件时,是怎么 ...

  5. LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询

    简介 使用线程的主要原因:应用程序中一些操作需要消耗一定的时间,比如对文件.数据库.网络的访问等等,而我们不希望用户一直等待到操作结束,而是在此同时可以进行一些其他的操作.  这就可以使用线程来实现. ...

  6. lambda表达式——写多线程

    JDK1.8 中Lambda 表达式的出现,基本可以取替原来的匿名类实现多线程的方式.下面列举常用的常用的三种情况. 一.普通开启异步线程   new Thread(() -> System.o ...

  7. Java 8特性探究(1):通往lambda之路与 lambda表达式10个示例

    本文由 ImportNew 函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的ja ...

  8. Java 8 Lambda表达式10个示例【存】

    PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是 ...

  9. Java 8 lambda表达式示例

    例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runna ...

随机推荐

  1. maven仓库报错 sqljdbc4、ojdbc6、tomcat-jdbc-8.5.14

    报错:Cannot resolve com.microsoft.sqlserver:sqljdbc4:4.0  和  Missing artifact com.microsoft.sqlserver: ...

  2. springBoot配置druid监控报错Failed to bind properties under 'spring.datasource.druid' to javax.sql.DataSource

    报错信息: Description: Failed to bind properties under 'spring.datasource.druid' to javax.sql.DataSource ...

  3. Spring Boot Admin 2.1.0

    原文:https://blog.csdn.net/forezp/article/details/86105850 Spring Boot Admin简介 Spring Boot Admin是一个开源社 ...

  4. 和群友聊HashTable转到树和图的数据结构

    AVL树 前中后遍历 树的遍历深度和广度 树是一种特殊的图 人脉关系属于图数据结构: 并查集 最小生成树 union find 正常图的遍历用广度也能做,但是速度低: 并查集可以降到logn 数据小的 ...

  5. 简单理解EM算法Expectation Maximization

    1.EM算法概念 EM 算法,全称 Expectation Maximization Algorithm.期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最 ...

  6. 等了半年的AMD锐龙3000系列台式机处理器今天终于上市开卖了!

    第三代AMD锐龙台式机处理器参数:

  7. 修改opencart extension插件代码后无法重新安装的解决办法

    有时我们在为opencart安装一些插件后,发现有些地方需要细微的调整,然后去修改插件代码重新安装,但是却没有成功.开始有点怀疑是不是不能修改代码,但也不至于啊,不然开发者怎么制作插件.应该是哪里出了 ...

  8. 神经网络中Batch Size的理解

    直观的理解:Batch Size定义:一次训练所选取的样本数.Batch Size的大小影响模型的优化程度和速度.同时其直接影响到GPU内存的使用情况,假如你GPU内存不大,该数值最好设置小一点. 为 ...

  9. RabbitMQ六种队列模式-工作队列模式

    前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列 [本文]RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主 ...

  10. 原生ajax分页,无刷新分页,最简化。超简单,代码最少

    <html><script> var page=1; // 页面第一次加载,显示第一页 window.onload=function(){ ajax_go(1) } //分页的 ...