linq查询转化为查询表达式,该怎么处理

linq查询转化为查询表达式
现有表department,外键MatchID,表Team,外键DepID,表Player外键TeamID,要求以MatchID为参数查询Team,和Player,在下列查询中如何写
    public IQueryable<Team> loadSearchData(TeamQuery team)
        { 
//知道DepID
     if (DepID> 0)
            {
                temp = temp.Where<Team>(u => u.DepID== DepID);
            }
if(MatchID>0){
//linq写法为
 //  from s in departmentwhere s.MatchID==MatchID 
 //  from t in Team where t.DepID==s.DepID
 //  select t

//这儿如何写?依据MatchID查询department,依据查询出来的department表的DepID来查询得到Team表

   temp = temp.Where<Team>(u=>    如何写         )
}
}

第二问:
依据MatchID查询department,依据查询出来的department表的DepID来查询得到Team表,依据查询出来的Team表的TeamID来查询Player
//linq写法为
 //  from s in departmentwhere s.MatchID==MatchID 
 //  from t in Team where t.DepID==s.DepID
 //   from p in Player  where p.TeamID==t.TeamID
// select p

//这儿如何写?

   temp = temp.Where<Player>(u=>    如何写         )
}
}






------解决思路----------------------
1、
temp.Where<Team>(u=>  department.Where(d=>d.MatchID==MatchID&&d.DepID==u.DepID) )

2、与1类似
------解决思路----------------------
引用:
我想问下表达式中department是什么类型,由于在项目中,表Team、表department都是model类,因此上述写法报错,提示department并不包含Where的定义,这是应该怎么改

我是看你的from里面有这个名字,所以用的这个名字,这个对应EF上下文,例如dbContext.Department