您如何将此trans-sql转换为LINQ?
我已经使用DefaultIfEmpty()尝试了它,但它似乎对我不起作用。 任何帮助表示赞赏。
SELECT s.Status
FROM EducationModule M
LEFT JOIN EducationModuleStatus S ON M.CourseID = S.CourseID
AND M.ModuleID = S.ModuleID
AND S.StudentID = '1506'
WHERE M.courseid = 2
提前致谢。
答案 0 :(得分:0)
加入Linq to SQL中的多个列有点不同。 您必须利用匿名类型并为要比较的多个列组成一个类型,在工作表下,这将生成您要查找的连接类型。
var abcd = from tl in db.EducationModule
join s in db.EducationModuleStatus
on new { t1.CourseID, t1.ModuleID } equals new {s.CourseID, s.ModuleID}
into tl_s
where tl.CourseID == 2 AND s.StudentID == '1506'
from s in tl_s.DefaultIfEmpty()
select new
{
Status = s.Status
};