我有这条SQL语句转换这个SQL以拉姆达为EF 4代码第一
SELECT * FROM Game
INNER JOIN Series ON Series.Id = Game.SeriesId
INNER JOIN SeriesTeams ON SeriesTeams.SeriesId = Series.Id
INNER JOIN Team ON Team.Id = SeriesTeams.TeamId
INNER JOIN TeamPlayers ON TeamPlayers.TeamId = Team.Id
INNER JOIN Player ON Player.Id = TeamPlayers.PlayerId
WHERE AND Game.StartTime >= GETDATE()
AND Player.Id = 1
,我想转换成一个lambda表达式。
这是如何工作的。
一个游戏只能加入1个系列,但一个系列当然可以有很多游戏。一个系列可以有很多团队,一个团队可以加入许多系列。 一名球员可以参加很多球队,而球队中有很多球员。
SeriesTeams和TeamPlayers仅仅是多到许多由EF创建举行系列/团队和团队之间的引用表/玩家
在此先感谢...
编辑:我用的是EF 4 CTP5,并希望将答案作为lambda函数,或者在linq中,如果更容易...
嗨。我会试试看。我猜EF生成的SQL语句不像我的原始sql语句那么“好”。一种方法是创建一个视图,该视图可以从不同的表中获得我想要的信息,然后执行该视图,然后创建此特殊实体以匹配该结果。不会像以上那样好,但可以给我更好的数据库性能。我必须做一些性能测试来决定是否值得做额外的工作。 – 2011-05-27 05:16:59