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、
2、与1类似
------解决思路----------------------
我是看你的from里面有这个名字,所以用的这个名字,这个对应EF上下文,例如dbContext.Department
现有表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类似
------解决思路----------------------
我是看你的from里面有这个名字,所以用的这个名字,这个对应EF上下文,例如dbContext.Department