Конвертировать SQL-код в linq (Inner join Query)

Может ли кто-нибудь помочь мне, пожалуйста, чтобы преобразовать этот SQL-код в Linq .

Запрос SQL

select distinct  coursecode
from UnitSet_Unit  
where UnitCode  in ('FDFFSACA' ,'FDFFSCFSAA', 'FDFOPTHCP3A ')
and CourseCode in (Select  distinct  coursecode
                  from Trainee_course
                  where TraineeID =10000088 )

куда UnitCode в IN clause приходят динамически и в виде массива. и код курса во второй части также имеет переменное количество

1 ответ

Решение

Сверху головы, предполагая, что у нас есть следующие входные данные (и вы работаете в C#):

var unitCodes = new List<string> { "FDFFSACA" ,"FDFFSCFSAA", "FDFOPTHCP3A" };
var traineeID = 10000088;

Это должно работать:

var result = (from us in db.UnitSet_Unit
              where unitCodes.Contains(us.UnitCode)
              && us.CourseCode == (from tc in db.Trainee_course
                                   where tc.TraineeID == traineeID
                                   select tc.CourseCode).Distinct().SingleOrDefault()
              select us.CourseCode).Distinct();
Другие вопросы по тегам