2012-08-29 79 views
1

我是EF和Linq的新手。EF Linq家長和孩子,回到家長

我有2個表,一個「新聞」表和一個「相關新聞」表。每個新聞項目應該顯示幾個相關新聞項目。

「新聞」包含新聞報道的獨特標識和詳細信息。

「相關新聞」的每一行都對「新聞」表中的父ID進行引用,並對相關新聞報道的ID進行引用,這又對應於「新聞」表中的ID

我試圖創建一個給定新聞ID的linq查詢,將顯示相關新聞報道的列表,並從「新聞」表中獲取詳細信息。

我管理的最好的是以下內容,但是這只是基於父鍵而不是相關新聞項鍵從新聞表中獲取故事。

 var query = from n in context.NewsPosts 
        from nr in n.RelatedNewsPosts 
        where nr.NewsId == NewsId 
        select n; 

我有一種感覺,正確的查詢可能不是太複雜,但我無法弄清楚!

任何幫助,非常感謝!

+0

你能澄清「相關新聞」表中可用的列名稱? – PinnyM

回答

1

您切換了NewsPosts和RelatedNewsPosts表格。給定一個新聞ID,查看該ID的所有RelatedNewsPosts,然後加入它引用的NewsPosts。

沒有測試,但我認爲這是你在找什麼想法(不知道它到底是如何設置的,但至少你的主要想法):

var givenNewsId = ...; 

var query = from nr in context.RelatedNewsPosts 
      join n in context.NewsPosts on nr.RelatedNewsId equals n.NewsId 
      where nr.NewsId = givenNewsId 
      select n; 
+0

工程太棒了!非常感謝! – user1624668