首页 > 解决方案 > C# 中的 Lambda 表达式使用具有多个左外连接的实体框架和内联附加过滤器

问题描述

我们在我的项目中使用实体框架。在其中一项要求中,我需要使用左外连接和条件从多个表中查询数据。这是 SQL 脚本。有人可以为此提供 lambda 表达式吗?

SELECT  
    e.EmployeeId, e.EmployeeFirstName, e.EmployeeLastName,
    s.SkillId, s.SkillName,
    c.CertificateId, c.CertificateName, c.ExpiryDate
FROM    
    [dbo].[Employee] AS e
LEFT OUTER JOIN 
    [dbo].[EmployeeSkill] AS s ON e.EmployeeId = s.EmployeeId 
                               AND s.IsActiveSkill = 1
LEFT OUTER JOIN 
    [dbo].[EmployeeCertification] AS c ON e.EmployeeId = c.EmployeeId  
                                       AND c.IsActiveCertification = 1  
                                       AND c.ExpiryDate < GETUTCDATE() + 30
WHERE   
    e.DepartmentId = 1
    AND e.IsActiveEmployee = 1

标签: c#sqllambda

解决方案


您可以使用 GroupJoin。它具有与 SQL 中的左外连接相同的功能。


推荐阅读