Подзапрос SQL в LINQ для Entity Framework 4.0 - PullRequest
1 голос
/ 04 мая 2010

Я новичок в LINQ и EF, но мне удалось наткнуться на большинство запросов, которые у меня есть, но этот меня совершенно запутал. Неважно, что я пытаюсь, в SQL Profiler это выглядит как большой беспорядок: -).

У меня есть две таблицы: Users и UsersProjects. Цель этого запроса - перечислить всех пользователей, которые работают над проектами с указанным пользователем. Вот запрос, как я написал в SQL. Это подзапрос, но я не знаю способа еще больше упростить его, но я также открыт для предложений.

SELECT DISTINCT Users.FirstName, Users.LastName  
FROM Users INNER JOIN UsersProjects ON Users.ID=UsersProjects.UserID  
WHERE UsersProjects.ProjectID IN  
(SELECT ProjectID FROM UsersProjects WHERE UserID=@UserID)  

Кто-нибудь может помочь ?? Это выглядит как довольно простой подзапрос в SQL, но в LINQ я озадачен.

Спасибо

Jorin

1 Ответ

0 голосов
/ 04 мая 2010

Примерно так:

from u in Users
from projectId in UsersProjects.Where(up => up.UserId == @userId).Select(p => p.ProjectId)
where u.UsersProjects.Any(up => projectId == up.ProjectId)
select u

или (это ваш sql запрос в linq)

(from u in Users
join up in UsersProjects on @userId equals up.UserId
where u.UsersProjects.Any(up2 => up2.ProjectId == up.ProjectId)
select u).Distinct()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...