linq查询转化为查询表达式

fyrise 2015-01-14 11:41:55
现有表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=> 如何写 )
}
}





...全文
367 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fyrise 2015-01-15
  • 打赏
  • 举报
回复
我想问下表达式中department是什么类型,由于在项目中,表Team、表department都是model类,因此上述写法报错,提示department并不包含Where的定义,这是应该怎么改
  • 打赏
  • 举报
回复
引用 3 楼 lcnmdfx 的回复:
我想问下表达式中department是什么类型,由于在项目中,表Team、表department都是model类,因此上述写法报错,提示department并不包含Where的定义,这是应该怎么改
我是看你的from里面有这个名字,所以用的这个名字,这个对应EF上下文,例如dbContext.Department
fyrise 2015-01-14
  • 打赏
  • 举报
回复
第一问sql查询写法: SELECT *
FROM team AS [t1], [department] AS [t0]
WHERE ([t1].[SchoolID] = ([t0].[DepID])) AND ([t0].[MatchID] = @MatchID)
  • 打赏
  • 举报
回复
1、
temp.Where<Team>(u=>  department.Where(d=>d.MatchID==MatchID&&d.DepID==u.DepID) )
2、与1类似

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧