Я унаследовал базу данных, которая не была разработана точно оптимально, и мне нужно манипулировать некоторыми данными. Позвольте мне дать более общую аналогию с тем, что я должен сделать:
Скажем, у нас есть таблица Student
, таблица StudentClass
, в которой хранятся все классы, на которых он присутствовал, и таблицу StudentTeacher
, в которой хранятся все учителя, которые обучили этого ученика. Да, я знаю, что это немой дизайн, и было бы лучше хранить учителя в таблице Class, но это то, с чем мы работаем.
Теперь я хочу очистить данные, и я хочу найти все места, где у ученика есть учитель, но нет классов или класса, но нет учителей. 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?