我有這條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