¿Cómo hacer una unión externa completa en Linq?

He heredado una base de datos que no fue diseñada exactamente de manera óptima, y ​​necesito manipular algunos datos. Permítanme dar una analogía más común del tipo de cosas que tengo que hacer:

Digamos que tenemos unStudent mesa, unaStudentClass registro de la mesa de todas las clases a las que asistió, y unStudentTeacher Mesa que almacena a todos los maestros que enseñaron a este alumno. Sí, sé que es un diseño tonto y tendría más sentido almacenar al profesor en la mesa de la clase, pero con eso estamos trabajando.

Ahora quiero limpiar los datos, y quiero encontrar todos los lugares donde un estudiante tiene un profesor pero no clases, o una clase pero no profesores. SQL así:

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

¿Cómo haces eso en Linq?

Respuestas a la pregunta(5)

Su respuesta a la pregunta