我是Linq和SQL术语的新手 - 有人可以告诉我为什么这不起作用(语法不正确 - 我无法将u.UserID int与Enumerable进行比较)
var projectUsers = from u in SimpleRepository.All<User>()
where u.UserID == (from i in SimpleRepository.All<ProjectUser>()
where i.ProjectID == p.ProjectID
select i.UserID)
select u;
在“英语”中,我们将“选择其id匹配的每个用户(来自ProjectUser集合的userID,其中projectID == x)并给我一组用户”。
我也使用带有SimpleRepository的subsonic3,如果这有所不同(或允许我使用其他东西来使这更容易)。
答案 0 :(得分:2)
var projectUsers = from u in SimpleRepository.All<User>()
where (from i in SimpleRepository.All<ProjectUser>()
where i.ProjectID == p.ProjectID
select i.UserID).Contains(u.UserID)
select u;
或
var projectUsers = from u in SimpleRepository.All<User>()
join u2 in SimpleRepository.All<ProjectUser>() on u.UserID equals u2.UserId
where u2.ProjectID == p.ProjectID
select u;