用连接计算linq语句

时间:2017-05-05 09:01:38

标签: c# linq

我想通过linq查询来计算。

我有Session对象列表。每个TestRun都有一个SessionId的TestRun对象列表。每个会话都有一个用户和用户有一个团队。

我想计算TestRun.Session.User.Team == x;

所在的测试运行

但是我不理解连接,C#linq与此查询等效的是什么?

3 个答案:

答案 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);