我有一个查询,我努力转换为LINQ。我无法满足所需的嵌套。下面是SQL查询(只是写意键入):SQL到LINQ JOIN和子查询
SELECT V.* FROM V
INNER JOIN VE ON V.ID = VE.V_ID
WHERE VE.USER_ID != @USER_ID
AND V.MAX > (SELECT COUNT(ID) FROM VE
WHERE VE.V_ID = V.ID AND VE.STATUS = 'SELECTED')
的最近我来是这样的:
var query = from vac in _database.Vacancies
join e in _database.VacancyEngagements
on vac.Id equals e.VacancyId into va
from v in va.DefaultIfEmpty()
where vac.MaxRecruiters > (from ve in _database.VacancyEngagements
where ve.VacancyId == v.Id && ve.Status == Enums.VacanyEngagementStatus.ENGAGED
select ve).Count()
...它正确地从我的SQL语句解析子查询。但是我想进一步限制返回的V行到只有当前用户没有相关VE行的行。
您可以在'into'关键字之前放置'where e.UserId!= userId'。 –
@GertArnold,这会导致语法错误:“查询正文必须以select子句或group子句结尾” – sfkHooper
您的查询在最后已经缺少“select”。 –