我是 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)中的任何一个匹配的每个用户,并给我一个用户集合”。
如果有所不同(或者允许我使用其他东西来使这更容易),我也会将 subsonic3 与 SimpleRepository 一起使用。
最佳答案
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;
关于c# - 嵌套 linq - 其中 x == 可枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3420433/