我有以下数据库设置。我希望完成的是在 Worker 选项卡中搜索一个工作人员,并返回结果用户根据图表所属的所有 BusinessAreas。我希望在 Lambda 表达式中完成此操作并返回顶级 BusinessArea 实体。如果需要,我可以让工作人员通过一些流程回到我想要的级别,但这需要我遍历不同的级别,直到我达到最高级别。
问问题
59 次
1 回答
2
听起来您想要这样的东西来查找单个用户的业务领域:
var results = WFE.BusinessAreas
.Where(ba => ba.Processes
.Any(p => p.WorkerProcesses
.Any(wp => wp.UserId == "pmarshall")));
或者在查询语法中:
var results =
from ba in WFE.BusinessAreas
where ba.Processes.Any(p => p.WorkerProcesses.Any(wp => wp.UserId == "pmarshall"))
select ba;
或者:
var results =
from ba in WFE.BusinessAreas
from p in ba.Processes
from wp in p.WorkerProcesses
where wp.UserId == "pmarshall"
select ba;
如果您想查找所有用户的所有区域,您需要执行以下操作:
var results =
(from ba in WFE.BusinessAreas
from p in ba.Processes
from wp in p.WorkerProcesses
select new { ba, wp.UserId })
.Distinct()
.ToLookup(x => x.UserId, x => x.ba);
然后您可以使用results["pmarshall"]
.
于 2013-09-03T22:57:43.430 回答