EntityFramework经典的left join语法

EntityFramework经典的left join语法

大家好,又见面了,我是全栈君。

/*
 * 常常看到有人问linq语法怎样写left join的查询语句,但网上找到的都是简单的两表连接。參考意义有限。
 * 今天最终项目里要用到复杂的多表连接,同一时候含有多个左连接,
 * 恰好又遇到业务中有复杂连接条件,因此整理例如以下。供大家參考:
 */
list = from t1 in Content.table1
       join t2 in Content.table2
         on t1.colum1 equals t2.colum2
       into r1
       from t2 in r1.DefaultIfEmpty()
       join t3 in Content.table3
         on new { pid = t2.colum2,      sid = t2.colum1,     t2.colum3 } //字段类型或值不一致时,
     equals new { pid = t3.colum2 ??

0, sid = t3.colum3 + 1, t3.colum4 } //能够这样统一起来 into r2 from t3 in r2.DefaultIfEmpty() join t4 in Content.table4 on t2.colum5 equals t4.colum1 where t2.id == paramId && string.IsNullOrEmpty(t1.colum2) select new your-result-class-name { //这里写点啥,地球人都知道。

。 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116076.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OPC协议_opc协议端口号

    OPC协议_opc协议端口号当然,OPCUA组件也可以在Unix操作系统的信息技术(IT)系统中使用,诸如:Solaris、HPUX、AIX、Linux等,可以是企业资源计划(ERP)系统,可以是生产计划(MES)和监控软件(SCADA),还可以是电子商务应用。OPCUA接口协议包含了之前的A&E,DA,OPCXMLDAorHDA,只使用一个地址空间就能访问之前所有的对象,而且不受WINDOWS平台限制,因为它是从传输层Scoket以上来定义的,这点后面会提到,导致了灵活性和安全性比之前的OPC都提升了。……

    2025年5月26日
    4
  • C# FileSystemWatcher用法详解[通俗易懂]

    C# FileSystemWatcher用法详解[通俗易懂]FileSystemWatcher控件主要功能:监控指定文件或目录的文件的创建、删除、改动、重命名等活动。可以动态地定义需要监控的文件类型及文件属性改动的类型。1.常用的几个基本属性:(1)Path:设置要监视的目录的路径。(2)IncludeSubdirectories:设置是否级联监视指定路径中的子目录。(3)Filter:设置筛选字符串,用于确定在目录中监

    2022年6月16日
    30
  • Django(25)WSGIRequest对象[通俗易懂]

    Django(25)WSGIRequest对象[通俗易懂]Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数。也就是我们经常看到的request参数。在这个

    2022年7月30日
    10
  • mysql 分区键_mysql分区

    mysql 分区键_mysql分区分区就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑创建分区,是对数据表,和索引表,同时创建分区的。不能分别创建分区;同时也不能对部分数据进行分区;分区在创建完成之后,管理员也无法动态更改;mysql分区的优点主要包括:和单个磁盘…

    2022年4月27日
    36
  • JS 定义全局变量[通俗易懂]

    JS 定义全局变量[通俗易懂]JavaScript声明全局变量三种方式的异同JavaScript中声明变量格式:var(关键字)+变量名(标识符)。方式1vartest;vartest=5;需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。方式2test=5;没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个func…

    2022年5月22日
    53
  • nohup运行jar包命令,及完整脚本

    nohup运行jar包命令,及完整脚本nohup运行jar包命令,及完整脚本

    2022年4月24日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号