我有以下的LINQ语句。我如何改变这个,所以我只在子查询中得到GroupID。 我的语法在这里不起作用。Linq to Sql的子查询
而且也只有不同的用户。
from u in Users
join ug in UserGroups on u.UserID equals ug.UserID
where ug.GroupID == (from igr in UserGroups where igr.UserID == 1 select igr.GroupID)
select u
我有以下的LINQ语句。我如何改变这个,所以我只在子查询中得到GroupID。 我的语法在这里不起作用。Linq to Sql的子查询
而且也只有不同的用户。
from u in Users
join ug in UserGroups on u.UserID equals ug.UserID
where ug.GroupID == (from igr in UserGroups where igr.UserID == 1 select igr.GroupID)
select u
我会打破它成可读性两个单独的查询,但在这里不用
var group = from igr in UserGroup
where irg.UserID == 1
select igr.GroupID;
var result = from u in Users
join ug in UserGroups on u.UserID equals ug.UersID
into x
where group.Contains(x.GroupID)
select x;
作为一个查询,我相信它会像这样工作
var result = from u in Users
join ug in UserGroups on u.UserID equals ug.UersID
into x
where
(from igr in UserGroup
where irg.UserID == 1
select igr.GroupID).Contains(x.GroupID)
select x;
这是怎么做的然后结束。
var query = (from u in _dbctx.Users
join ug in _dbctx.UserGroups on u.UserID equals ug.UserID
where _dbctx.UserGroups.Any(igr => igr.GroupID == ug.GroupID && igr.UserID == 1)
select GetUser(u)).Distinct();
from u in Users
join ug in UserGroups on u.UserID equals ug.UserID
where ug.GroupID == (from igr in UserGroups where igr.UserID == 1 select igr.GroupID).FirstOrDefault()
select u
内查询必须恰好返回一个值
StackOverflow的使用降价的格式(见:http://daringfireball.net/projects/markdown/syntax)。像'[code] [/ code]'这样的东西在这里不起作用。 – 2012-03-07 17:30:00