我想通过linq查询来计算。
我有Session对象列表。每个TestRun都有一个SessionId的TestRun对象列表。每个会话都有一个用户和用户有一个团队。
我想计算TestRun.Session.User.Team == x;
但是我不理解连接,C#linq与此查询等效的是什么?
答案 0 :(得分:1)
尝试代码:
` int result=( from p in TestRun
join q in session on p.sessionid equals q.sessionid
join r in user on q.user equals r.userid
where r.team==X select p ).distinct().ToList().Count();`
答案 1 :(得分:0)
知道了。谢谢你的帮助。
var fullList= from session in mSessions
join testRun in mTestRuns on session.Id equals testRun.SessionId
where session.Value.Username.Team == "whatever"
select new { testRun.Anything };
int count = fullList.Count();
答案 2 :(得分:0)
请注意,如果您通过Linq2SQL或Entity Framework使用数据库,并且您已经为这些属性创建了外键关系,则会自动为您完成JOIN:
int result=(from p in TestRun
where p.Session.User.Team == X
select p).Count();
或
int result TestRun.Count(p=>p.Session.User.Team == X);