Конвертировать 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();