如何在Linq中执行全外连接?

6 浏览
0 Comments

如何在Linq中执行全外连接?

我继承了一个数据库,设计并不是最优的,我需要操作一些数据。让我用一个更常见的类比来解释我需要做的事情:

假设我们有一个Student表,一个StudentClass表记录他参加的所有课程,还有一个StudentTeacher表存储教授这位学生的所有教师。是的,我知道这是一个愚蠢的设计,将教师存储在课程表中会更合理 - 但这就是我们现在的工作。

现在,我想清理数据,并找出所有学生有教师但没有课程的地方,或者有课程但没有教师的地方。在SQL中,可以这样写:

select *
from StudentClass sc
full outer join StudentTeacher st on st.StudentID = sc.StudentID
where st.id is null or sc.id is null

在Linq中该如何实现呢?

0