c# - 嵌套 linq - 其中 x == 可枚举

标签 c# linq c#-3.0 subsonic3

我是 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/

相关文章:

entity-framework - Entity Framework SaveChanges() 不起作用?

jquery - 如何使用MVC3 Controller 显示 "Message box"

c# - 在不更改 Windows 区域设置的情况下更改应用程序的区域设置

c# - 更改遥测处理器中的遥测类型

c# - TSQL + C# : Dynamically changing the Database in use

c# - 如何在远程服务器上运行命令行程序

c# - LINQ 向 WHERE 子句添加额外的逻辑

c# - 带有非传递 IComparer 的 OrderBy

c# - LINQ lambda 表达式参数是否应该在第二个 lambda 中重用?

c# - ~1 秒 TcpListener Pending()/AcceptTcpClient() 滞后