当前位置: 首页 > news >正文

C#两个表多条件关联写法

文章目录

  • C#两个表多条件关联写法
    • 两个表实体类准备
    • 实体类数据初始化
    • 第一种 sql的左关联
    • 第二种相当于sql的 INNER JOIN
      • 写法一:FROM a FROM b where 多条件关联
      • 写法二: FROM JOIN INTO
      • 写法三: FROM JOIN 省略into

C#两个表多条件关联写法

两个表实体类准备

 public class OtherIn{public string AfterOrderNo { get; set; }public long MaterialId { get; set; }public string MaterNumber { get; set; }public long Qty { get; set; }public string Note { get; set; }}public class AfterInfo{public string AfterOrderNo { get; set; }public long MaterialId { get; set; }public string MaterNumber { get; set; }public long AfterQty { get; set; }public string Note { get; set; }}

实体类数据初始化

List<OtherIn> getOtherInGroup = new List<OtherIn>();getOtherInGroup.Add(new OtherIn { AfterOrderNo= "SH231025001",MaterialId=100001,MaterNumber="CTG001",Qty=2});getOtherInGroup.Add(new OtherIn{AfterOrderNo = "SH231025001",MaterialId = 100002,MaterNumber = "CTG002",Qty = 3});getOtherInGroup.Add(new OtherIn{AfterOrderNo = "SH231025002",MaterialId = 100002,MaterNumber = "CTG002",Qty = 4});List<AfterInfo> getAfterGroup = new List<AfterInfo>();getAfterGroup.Add(new AfterInfo {AfterOrderNo = "SH231025002",MaterialId = 100002,MaterNumber = "CTG002",AfterQty = 5});getAfterGroup.Add(new AfterInfo{AfterOrderNo = "SH231025001",MaterialId = 100001,MaterNumber = "CTG001",AfterQty = 1});

第一种 sql的左关联

FROM a JOIN b on 组合键关联 into 临时表 from 临时表(左关联不上右边默认为空)

  var getExcessGroup = from a in getOtherInGroupjoin b in getAfterGroup on new { a.AfterOrderNo, a.MaterialId } equals new { b.AfterOrderNo,b.MaterialId }into resultfrom c in result.DefaultIfEmpty()select new{AfterOrderNo = a.AfterOrderNo,MaterialId=a.MaterialId,Qty = a.Qty,AfterQty = c == null ? 0 : c.AfterQty};

结果
在这里插入图片描述

第二种相当于sql的 INNER JOIN

写法一:FROM a FROM b where 多条件关联

 var getExcessGroup2 = from a in getOtherInGroupfrom b in getAfterGroupwhere a.AfterOrderNo == b.AfterOrderNo && a.MaterialId == b.MaterialIdselect new{AfterOrderNo = a.AfterOrderNo,MaterialId = a.MaterialId,Qty = a.Qty,AfterQty = b == null ? 0 : b.AfterQty};

结果
在这里插入图片描述

写法二: FROM JOIN INTO

FROM a JOIN b on 组合键关联 into 临时表 from 临时表(不默认为空)

var getExcessGroup1 = from a in getOtherInGroupjoin b in getAfterGroup on new { a.AfterOrderNo, a.MaterialId } equals new { b.AfterOrderNo, b.MaterialId }into resultfrom c in resultselect new{AfterOrderNo = a.AfterOrderNo,MaterialId = a.MaterialId,Qty = a.Qty,AfterQty = c == null ? 0 : c.AfterQty};

结果
在这里插入图片描述

写法三: FROM JOIN 省略into

var getExcessGroup11 = from a in getOtherInGroupjoin b in getAfterGroup on new { a.AfterOrderNo, a.MaterialId } equals new { b.AfterOrderNo, b.MaterialId }select new{AfterOrderNo = a.AfterOrderNo,MaterialId = a.MaterialId,Qty = a.Qty,AfterQty = b.AfterQty};

结果
在这里插入图片描述

相关文章:

C#两个表多条件关联写法

文章目录 C#两个表多条件关联写法两个表实体类准备实体类数据初始化第一种 sql的左关联第二种相当于sql的 INNER JOIN写法一&#xff1a;FROM a FROM b where 多条件关联写法二&#xff1a; FROM JOIN INTO写法三&#xff1a; FROM JOIN 省略into C#两个表多条件关联写法 两个…...

VSCode-C/C++环境配置

0.下载VSCode VSCode官网 Visual Studio Code - Code Editing. Redefined 1.安装VSCode 2.编译器下载与配置 2.1下载编译器安装包 编译器的安装包分为两种一种是在线的一种是离线的,其区别的特点如下 在线安装&#xff08;只是个下载器&#xff0c;打开后还要下载各种东西…...

第八周实验记录

10月20日-10月22日工作&#xff1a; 复现S-NeRF代码&#xff0c;按照github的步骤进行&#xff0c;首先使用一个RTX3090显卡&#xff0c; 在下图步骤中&#xff1a;运行最后一步 python scripts/run.py 出现问题 继续使用两张RTX3090显卡尝试&#xff0c;依旧在这一步出现问…...

Spring Cloud Alibaba Seata 实现 SAGA 事物

Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案 Seata 官网&#xff1a;https://seata.io/zh-cn/ Spring Cloud Alibaba 官…...

npm install报错,解决记录

第一步&#xff1a;检查和安装 我这里建议检查 1.node.js版本是否和前使用版本一致 2.npm版本是否和前使用版本一致 3.vue版本是否和前使用版本一致 4.vue脚手架是否和前使用版本一致 5.npm镜像是否和前使用版本一致 1.检查版本 【node版本】 命令&#xff1a;node -v 结果&a…...

LSM树原理详解

LSM树(Log-Structured-Merge-Tree)的名字往往会给初识者一个错误的印象&#xff0c;事实上&#xff0c;LSM树并不像B树、红黑树一样是一颗严格的树状数据结构&#xff0c;它其实是一种存储结构&#xff0c;目前HBase,LevelDB,RocksDB这些NoSQL存储都是采用的LSM树。 LSM树的核…...

Linux系统编程_网络编程:字节序、socket、serverclient、ftp 云盘

1. 网络编程概述&#xff08;444.1&#xff09; TCP/UDP对比 TCP 面向连接&#xff08;如打电话要先拨号建立连接&#xff09;&#xff1b;UDP 是无连接的&#xff0c;即发送数据之前不需要建立连接TCP 提供可靠的服务。也就是说&#xff0c;通过 TCP 连接传送的数据&#xf…...

队列(8.6)

目录 2.队列 2.1队列的概念及结构 2.2队列的实现 2.2.1初始化队列 2.2.2队尾入队列 2.2.3队头出队列 2.2.4获取队列头部元素 2.2.5 销毁队列 3.栈和队列面试题 225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 232. 用栈实现队列 - 力扣&#xff08;LeetC…...

计算机网络 第四章网络层

文章目录 1 网络层的功能2 数据交换方式&#xff1a;电路交换3 数据交换方式&#xff1a;报文交换4 数据交换方式&#xff1a;分组交换5 数据交换方式&#xff1a;数据报方式6 数据交换方式&#xff1a;虚电路方式及各种方式对比7 路由算法及路由协议8 IP数据报的概念和格式9 I…...

操作系统运行机制

文章目录 操作系统运行机制特权指令VS非特权指令内核态VS用户态中断和异常内中断(异常)外中断中断机制基本原理中断处理过程 系统调用系统调用和库函数的区别为什系统调用时必须的&#xff1f;什么功能需要用到系统调用系统调用的过程小结 操作系统内核 操作系统运行机制 特权…...

mathtype7.4破解永久激活码

MathType(数学公式编辑器)是由Design Science公司研发的一款专业的数学公式编辑工具。MathType功能非常强大&#xff0c;尤其适用于专门研究数学领域的人群使用。使用MathType让你在输入数学公式的时候能够更加的得心应手&#xff0c;各种复杂的运算符号也不在话下。 MathType最…...

66 内网安全-域横向批量atschtasksimpacket

目录 演示案例:横向渗透明文传递at&schtasks 案例2-横向渗透明文HASH传递atexec-impacket案例3-横向渗透明文HASH传递批量利用-综合案例5-探针主机域控架构服务操作演示 传递攻击是建立在明文和hash值的一个获取基础上的攻击&#xff0c;也是在内网里面常见协议的攻击&…...

PCI9054入门1:硬件引脚定义、时序、FPGA端驱动源码

文章目录 1&#xff1a;PCI9054的FPGA侧&#xff08;local侧引脚定义&#xff09;2&#xff1a;PCI9054的C模式下的读写时序3&#xff1a;FPGA代码部分具体代码&#xff1a; 1&#xff1a;PCI9054的FPGA侧&#xff08;local侧引脚定义&#xff09; 而PCI9054的本地总线端的主要…...

多媒体应用设计师 第17章 多媒体应用场景的技术应用和实现示例

口诀 思维导图 2020...

react151618刷新几次的问题

结论&#xff1a; 16 hooks版本 默认render1次 同步中&#xff0c;无论多少种类还是次数&#xff0c;都render 1次。 异步中&#xff0c;无论多少种类还是次数&#xff0c;1个种类执行1次&#xff0c;多次的话&#xff0c;用n*2。 18 hooks版本 默认render2次&#xff0c; 同步…...

【Spring】IOC容器与Bean的常用属性配置

文章目录 1.前言2.IOC容器2.1 BeanFactory 容器2.2 ApplicationContext 容器 3.Bean的常用属性配置4. 总结 1.前言 在之前的文章-IOC的快速入门中讲过Bean这个概念. 本来就来介绍容器与Bean的常用属性配置 在Spring框架中&#xff0c;Bean指的是被Spring加载生成出来的对象。 …...

2023年下半年 系统集成项目管理工程师 真题考点(一二三四批次)(10月28、29)(网友回忆版)

文章目录 第一批部分考点整体管理采购管理风险管理二&#xff1a;EAC 第二批部分考点如下&#xff1a; 第三批部分考点如下&#xff1a; 第一批 部分考点 1、案例考了关键路径和工期&#xff0c;风险管理、采购、风险、招投标&#xff0c;整体管理。 2、计算题有关键路径和挣…...

读韩都衣舍,谈权力转移的激励制度

这是一个很久之前的商业案例。 在大公司&#xff0c;管理过于复杂&#xff0c;成了现在公司管理的大问题。大公司的流程长&#xff0c;市场的突击速度慢&#xff0c;以及员工的积极性差&#xff0c;成为大公司的一个潜在的弊病。而最近&#xff0c;从韩都衣舍的创始人赵迎光的…...

私有云:【10】VCenter安装win10

私有云&#xff1a;【10】VCenter安装win10 1、ESXI挂载win10镜像2、VCenter安装win102.1、创建虚拟机2.2、启动虚拟机 此WIN10用来作为以后的远程桌面 1、ESXI挂载win10镜像 2、VCenter安装win10 2.1、创建虚拟机 创建虚拟机 设置名称下一步 选择计算机资源 选择NFS存储 设置…...

[Java/力扣100]判断两棵二叉树是否相同

我希望通过这道题&#xff0c;能进一步了解递归思想和“树是递归定义的”这句话 分析 我们的目的是写一个方法来检验两棵树是否相同 什么叫“两棵树相同”&#xff1f;——相同的位置存在相同的结点 有三种情况&#xff1a;1、两棵树一颗为空一颗不为空——不相同&#xff…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...