2011-07-05 91 views
1

最近我用Linq(方法語法)編寫了此查詢,注意: g.CmsContents是Navigatiola屬性。Linq將方法語法轉換爲查詢表達式

我想知道如何將此代碼重寫爲Linq查詢表達式(如果可能的話)。

var myGroupsTypesList = from g in context.CmsGroupsTypes 
         where g.CmsContents.Any(x => x.ContentId == myContentId) 
         select g; 

有什麼想法嗎?感謝您的支持:-)

回答

2

這已經是一個查詢表達式。如果你的意思是你想將Any零件轉換成另一個查詢表達式 - 你不能。沒有對Any的查詢表達式支持。

如果你實際上意味着它反過來,你的查詢等效於:

var myGroupsTypesList = context.CmsGroupsTypes 
      .Where(g => g.CmsContents.Any(x => x.ContentId == myContentId)); 
+0

感謝喬恩的評論,所以我的理解,如果我想轉換的任何一部分,我不應該使用的導航屬性?正確?在這種情況下,我應該使用加入?再次感謝您在這方面的時間! – GibboK

+1

@GibboK:你*可以*使用加入...但爲什麼不堅持它,因爲它是?避免使用查詢表達式中不可用的所有內容毫無意義。 –

+0

我明白你的觀點,只是嘗試學習不同的方式來獲得相同的結果,所以我可以瞭解更多關於Linq的知識。現在感謝 – GibboK

相關問題