你好,我困在一個問題上,希望有人能解釋我的答案!linq查詢實體框架如何連接表?導航屬性?
所以在我的數據庫中,我有3個表連接像這樣:
Customer CustomerAddress Address
-CustomerID -CustomerID -AddressID
-FirstName -AddressID -Street
-LastName -City
所以我創造我的實體模型和中間表(CustomerAddress)被移除,並通過導航屬性所取代?
所以我想要做的是在C#中使用LINQ查詢連接表。 在SQL查詢會是這個樣子:
Select *
From dbo.customer as c
left join dbo.customeraddress as ca on c.customerID = ca.customerID
left Join dbo.Address as a on a.addressID = ca.addressID
我在這裏認識那不是如此,因爲沒有customeraddress表。我是否使用導航屬性列來進行連接?在我的模型圖中,我注意到在Customer類/表中有一個名爲Addresses的導航屬性,似乎映射到名爲Customers的Address類/表屬性。
所以我已經試過這樣:
var customerQuery = (from customer in db.Customers
join address in db.Addresses on customer.Addresses equals address.Customers into add
from rt2 in add.DefaultIfEmpty()
select new { //.. });
但是,這顯然是不正確,因爲我不能確定做什麼用的導航性能做加入他們的行列。我真的很感激,如果有人能向我解釋我如何去加入這個模型!
爲什麼不使用em表呢?雖然只是要清楚你想加入時間,所以你可以從連接表中選擇? – Niklas