好的,我有一个包含Projects,Users和ProjectMembers表的数据库,Projects表有一个ID列和ProjectOwner列,它是Users表中的外键,Users表有ID,用户名列和ProjectMembers table有一个ID,ProjectID和UserID列,后两列是Projects表和Users表中的外键。
基本上,项目是管理项目的东西,用户可以创建一个项目使其成为所有者,然后可以将其他用户分配给该项目,该项目将记录添加到ProjectMembers表。
我正在尝试编写一个linq查询,该查询选择Projects表中的所有记录,其中特定用户不是ProjectOwner,但它们是ProjectMembers表中的ProjectMember?
我做了各种尝试,但到目前为止还没有能够正确查询。
答案 0 :(得分:2)
这样的事情应该有效:
from p in Projects
join m in ProjectMembers on m.ProjectID equals p.ID
where m.UserID == userID && p.ProjectOwner != userID
group p by p.ID
select p
答案 1 :(得分:0)
您可以制作多个from
条款:
from e1 in table1
from e2 in table2
where e1.key == e2.id
select e1.name
答案 2 :(得分:0)
试试这个:
from x in Users
where ProjectMembers.Any(y => y.UserID==x.ID) &&
!ProjectOwners.Any(z => z.ProjectOwner==x.ID)
select x;