EF架构~linq模拟left join的两种写法,性能差之千里!

2022-12-29,,,

回到目录

对于SQL左外连接我想没什么可说的,left join将左表数据都获出来,右表数据如果在左表中不存在,结果为NULL,而对于LINQ来说,要实现left join的效果,也是可以的,在进行join时直接into到集合变量就可以了,但在赋值时,如果只需要集合的一条记录,那在写法上又会有两种,而这两种写法所产生的性能是相关千里的,下面来看一下.

首先是SQL的左外连接

SELECT  [t6].[CourseID] ,
[t6].[UserID] ,
[t6].[CourseName] ,
[t6].[ResourceID] ,
[t6].[StudyTime] ,
[t6].[BeginTime] ,
[t6].[EndTime] ,
[t6].[value] AS [CategoryID] ,
[t6].[value2] AS [ClassHour] ,
[t6].[value3] AS [Percent] ,
[t6].[test] ,
[t6].[ID] ,
[t6].[SmallPicture]
FROM dbo.User_Course AS t6
LEFT OUTER JOIN [User_StudyRecord] AS t3 ON t6.UserID = t3.UserID
AND t3.ResourceID = t6.ResourceID

当它被翻译成LINQ之后,是分页产生的结果,所以感觉更很乱了,呵呵,(LINQ在翻译SQL时,本来就够乱的,再一分页,用上row_number,更乱了),但结果是一样的,

咱们就不管微软是怎么翻译的了

aaarticlea/png;base64,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" alt="" />

我们重要是看一下,实现时LINQ代码的写法

第一种,性能低下的,如果结果为20条记录,那它需要多连接20次

            var linq = from _data in new User_Course(UnitOfWork).GetEntities()
let list = new Res_Item(UnitOfWork).GetEntities().Select(t => new Entity.Res_Item
{
ID = t.ID,
SmallPicture = t.SmallPicture,
}).Where(i => i.ID == _data.ResourceID) let list2 = new User_StudyRecord(UnitOfWork).GetModel().Select(r => new Entity.User_StudyRecord
{
StudyContent = r.StudyContent,
UserID = r.UserID,
Res_ItemID = r.Res_ItemID,
}).Where(i => i.Res_ItemID == _data.ResourceID && i.UserID == _data.UserID)
from record in list2.DefaultIfEmpty()
where _data.CategoryID != (int)CustomEnum.CategoryType.BroadcastProgram
&& _data.CategoryID != (int)CustomEnum.CategoryType.AskRoom
select new Entity.User_Course
{
CourseID = _data.CourseID,
UserID = _data.UserID,
CourseName = _data.CourseName,
ResourceID = _data.ResourceID,
StudyTime = _data.StudyTime,
BeginTime = _data.BeginTime,
EndTime = _data.EndTime,
CategoryID = _data.CategoryID ?? 2,
Res_Item = list.FirstOrDefault(),
ClassHour = _data.ClassHour ?? 0,
Percent = _data.Percent ?? 0,
Prev_ResourceName = record == null ? string.Empty : record.StudyContent,
};

第二种,性能较好的

aaarticlea/png;base64,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" alt="" />

总结:对于第一种性能较差的写法产生的结果,类似于LINQ本身提交的延时加载,即结果集中,每条记录都去查询数据库,它不会一次将数据获出来,这种作用在特定场合是

有它的好处的,但不适用于所有,当返回结果集比较大时,不应该使用延时加载!

回到目录

EF架构~linq模拟left join的两种写法,性能差之千里!的相关教程结束。

《EF架构~linq模拟left join的两种写法,性能差之千里!.doc》

下载本文的Word格式文档,以方便收藏与打印。