2010-05-28 43 views
0

有一個問題,我需要幫助您使用LINQ to SQL和實體框架(我正在使用Visual Studio 2010)的數據查詢。使用LINQ to SQL和實體框架使用外鍵查詢數據?

我有三個表:

  1. tblNewsDetails
  2. tblNewsCategories
  3. tblNewsInCategories

(見圖1,如下圖)

現在,我想要檢索記錄在tblNewsDetails表中,條件爲CategoryId=1,如下圖所示。

但是NewsIDCategoryIdtblNewsInCategories表中有兩個外鍵。我沒有看到他們,我不知道如何在我的代碼中使用它們。

此外,我的代碼有錯誤,如下圖所示。

http://img.tamtay.vn/files/photo2/2010/5/28/10/962/4bff3a3b_1093f58f_untitled-1.gif

+0

我真的懷疑你正在同時使用LINQ to SQL *和* Entity Framework ...你可能使用Linq來實體,而不是LINq來SQL – 2010-05-28 08:18:07

回答

1

有幾個方法可以,這裏是新興的一個

from n in tblNewsInCategories.Include("NewsCategory").Include("NewsDetail") 
where n.NewsCategory.CategoryID == 1 
select n.NewsDetail 

記得N(和B,在你的爲例)是TblNewsInCategories實體,這可能具有以下屬性:

{ 
    public int NewsInCategories { get; set; } // your middle table primary key 
    public TblNewsCategory NewsCategory { get; set; } // a navigation property 
    public TblNewsDetails NewsDetail { get; set; } // a navigation property 
} 

所以爲了訪問NewsId和CategoryId,你必須通過導航屬性。

+0

非常感謝Dynami Le-Savard。我已經解決了這個問題。 (我已經失去了三天試圖解決)。 你是一個好人,並且有很好的知識。 我想在Facebook上與你交朋友:-) – 2010-05-28 17:03:07