Linq左右查询
Linq查询相信很多人都对此都是不陌生的了
特别是单表查询和连表查询对于程序员来说是家常便饭了
但是在连表查询的时候我们也会遇到许多问题
类如当你想显示一张表的全部数据同时又需要连表查询的时候
由于连表查询的外键数据不完整也就是存在空的时候
连表查询就会无法查询出全部的数据
就无法查询出你想要的整张表的数据
有什么办法可以解决这个问题吗?
肯定是有的下面我就给大家介绍下能够解决这个问题的左查询
Linq左查询是能够查询显示整张表的数据的
不管连表查询的条件也就是外键是否存在空值
一样可以把连表查询左边的整张表的数据查询出来
如下图就是左查询的代码
左查询也是在条件连表查询的基础上进行的
如图中可以看出是在条件后加into继续写下去的
into后面接的是自定义命名
也就是将前面的整个条件查询赋值给了后面的自定义命名
然后用自定义命名接着进行查询并且调用了方法DefaultIfEmpty()
DefaultIfEmpty()这个方法他的作用是给条件查询含有null的条件也可以查询出来
并且自动给调用这个方法的表填充默认数据
将右表填充到更左表的数据长度一样为止
这样就可以实现将左表的数据全部查询出来的效果
还有右查询也是更左查询的原理一样的
他们都是调用DefaultIfEmpty()这个方法来进行数据的填充来实现整张表的数据显示的
意思就是不管是左查询还是右查询
如果你想显示哪张表的全部数据
那么另外一张表就调用DefaultIfEmpty()方法进行数据填充
从而实现查询显示全部数据的效果