开发工具与关键技术:VS、linq左查询
作者:陆桂超
撰写时间:2019年7月16日
Linq左查询是linq查询的方法之一,那么在什么时候要用到linq左查询呢?下面我同过一个例子来解说linq左查询的使用场合和使用方法。我用的是VS开发工具,C#编程语言,和mvc开发框架。
1、首先看看要解决的问题。如下图所示采购订单表和采购入库表,采购入库表以采购订单表的主键为外键把两表连起来。现在我要查询采购订单表的数据,条件是:采购订单表的bit值为True而采购入库的bit值为false。
2、错误做法。
在没有使用过左查询之前,上图所示的方法往往是我们用到的。上图所示的代码看似没问题,就是把两张表连起来,查询条件是tbPurchaseIndent.ToAudit
== true &&
Purchase.RKToAudit == false
事实上这总写法是错误的,因为忽略了一种情况就是当采购订单表有数据而采购入库表没有数据时就会出错。因此,在这里就要用到左查询。
3、正确做法。Linq左查询。
如上图所示,画了下划线的是左查询语句。
语法结构是:into + 自定义表名1 from 自定义表名2 in 自定义表名1. DefaultIfEmpty()
这样,当采购订单表有数据而采购入库表没有对应的数据时,采购入库表就会以空来代替。这样就可以避免报错。