需要完成的查询逻辑: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. centos7利用acme.sh获取Let's Encrypt的永久免费ssl证书并配置网站域名https访问

    acme.sh介绍:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E github:https://github.com/Neil ...

  2. 十六、python面向对象基础篇

    面向对象基础: 在了解面向对象之前,先了解下变成范式: 编程范式是一类典型的编程风格,是一种方法学 编程范式决定了程序员对程序执行的看法 oop中,程序是一系列对象的相互作用 python支持多种编程 ...

  3. echars配置案例-reactnative

    option = { backgroundColor:'#fff', grid: { left: '3%', right: '4%', top:, bottom: '6%', containLabel ...

  4. Django 1.11 bootstrap样式文件无法加载问题解决

    先吐槽一波,多看官方教程,多找对应版本解决方法,多思考!... 在调试模式下面,打开页面无法加载bootstrap.min.css样式,解决思路如下: 查看settings文件INSTALL_APP配 ...

  5. c# 文件夹权限

    /// <summary>         /// 创建文件路径         /// </summary>         /// <param name=" ...

  6. PATA1082Read Number in Chinese

    有几点需要注意的地方一是将right转化为与left在在同一节 while (left + 4 <= right) { right -= 4;//每次将right移动4位,直到left与righ ...

  7. C语言博客作业04—数组

    0.展示PTA总分(0----2) 展示3张关于"数组题目集"分数截图. 1.本章学习总结(2分) 1.1 学习内容总结 整理数组这章学习主要知识点,必须包含内容有: (1)数组查 ...

  8. react-native-cli运行项目及打包apk失败的解决过程

    刚开始学习react native,第一步自然是搭建好开发环境,node及jdk本身就有,Python2.Android studio以及Android sdk的安装倒是没什么大问题,按照官网的教程做 ...

  9. RedHat linux服务器对外开放指定端口

    为了能够远程访问这台机器上的MySQL,需要开放3306端口: [root@localhost ~]# service iptables status Redirecting to /bin/syst ...

  10. Android Studio 之 控件基础知识

    1. TextView 和 EditText 控件常用属性  android:layout_width="match_parent" 宽度与父控件一样宽 android:layou ...