以前我问过一个关于这个问题的问题,但是我的数据库结构发生了变化,虽然它使其他事情变得更简单,但现在这部分更加复杂。 Here是上一个问题。实体框架 - 多对多子查询
当时,我的EF上下文有一个UsersProjects对象,因为还有其他属性。现在我简化了表格,它只是关键点,所以我的EF上下文知道的是Users
和Projects
以及它们之间的M2M关系。就EF而言,没有更多的UsersProjects
。
所以我的目标是说“向我展示与我一起从事项目的所有用户”。
在SQL,这会去是这样的:
SELECT * FROM Users INNER JOIN UsersProjects ON Users.ID=UsersProjects.UserID
WHERE ProjectID IN (SELECT ProjectID FROM UsersProjects WHERE [email protected])
,我在EF开始是这样的:
var myProjects =
(from p in edmx.Projects
where p.Users.Contains(edmx.Users.FirstOrDefault(u => u.Email == UserEmail))
orderby p.Name
select p).ToList();
var associatedUsers =
(from u in edmx.Users
where myProjects.Contains(?????????)
//where myProjects.Any(????????)
select u);
关键在于找出放什么的???? ????。任何人都可以帮忙
不错。有道理,所以我将它标记为答案,但是当我插入它时,我遇到了一些我必须解决的有趣错误。看到我的帖子下面... – Jorin 2010-05-15 20:07:18