Linq左连接

左连接简介

解释见如下注释

select *
from a表
left join b表
on a.aid = b.bid
-- 如上是左连接最简单的写法,a表左连接b表,此时即使aid与bid没有匹配上,a表的所有数据依然可以被查出来

Linq中的左连接,如下,主要看划重点的两行

//获取基站在redis的实时数据
                var stationRealTimeList = RedisHelper.GetRedisStationRealTimeData();
                //获取基站在数据库的所有数据
                var stationList = new DbContext<WirelessStationInfo>().GetList(t => t.DeleteDate == null);
                //关联查询基站实时信息
                var stationRealTimeInfos = (from stationItem in stationList
                                           join stationRealTimeItem in stationRealTimeList
                                           on stationItem.StationID equals stationRealTimeItem.StationID
                                           into stationRealTimeInfo   //划重点划重点
                                           from str in stationRealTimeInfo.DefaultIfEmpty()  //划重点划重点
                                            select new
                                           {
                                               stationID = stationItem.StationID,    //分站ID
                                               stationName = stationItem.StationName,   //分站名称
                                               stationIP = stationItem.WxIP,     //分站IP
                                               stationState = str == null ? 1 : str.StationState,  //分站状态  
                                               //划重点 获取被左连接的表的数据时要进行判断
                                           }).ToList();

版权声明:本文为qq_43610925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。