2016-02-15 141 views
-6

有人可以帮我将这段代码重写到LINQ吗?重写SQL查询到LINQ

SELECT UP.ProjectId 
FROM UserProjects UP 
INNER JOIN Projects P ON UP.ProjectId = P.ProjectId 
WHERE P.Status = 1 
GROUP BY UP.ProjectId 
HAVING COUNT(CASE WHEN UP.UserId = 1 THEN 1 END) = 0 
The HAVING clause filters out projects related to user with UserId = 1. 
+4

那你试试?你有什么问题? –

回答

1

试试这个:

var result=(from up in DbContext.UserProjects 
      join p in DbContext.Products on up.ProjectId equals p.ProjectId 
      where p.Status == 1 && up.userid==1 
      group up by up.ProjectId into gps 
      select gps.FirstOrDefault().ProjectId).ToList();