2014-06-17 74 views
0

我在EntityModel中有3個實體:Customer,CustomerAddress(這是與Ids和orderOnControl列的連接實體,不能在模型中忽略)和Address。我需要LINQ查詢到FULL JOIN Customer with Address。該查詢在SQL很簡單:完整的外部連接與LINQ的3個表

select e1.[AddressID], e1.City, e3.CustomerID, e3.LastName from [SalesLT].[Address] as e1 
full join [SalesLT].[CustomerAddress] as e2 on e1.[AddressID] = e2.[AddressID] 
full join [SalesLT].[Customer] as e3 on e2.CustomerID = e3.CustomerID 

但我需要使用LINQ寫這篇文章,我發現那裏有2個實體多到五月關係的答案,但無法結實體狼狽不堪,我將不勝感激任何提示

+1

'FULL JOIN'?你確定? –

+0

是的,我需要完全連接(結果將作爲控件的數據源,我可以檢查複選框以連接行元素)。我認爲「LINQ - Full Outer Join」與兩張表格是不同的。 – przemo

+0

您可以將兩個表格解決方案應用兩次以獲得3個表格全外連接。 –

回答

0

給這個鏡頭。此LINQ語句將通過聯結表CustomerAddress將客戶加入地址。

var query = from ca in context.CustomerAddress 
    join a in context.Address on ca.AddressId equals a.AddressId 
    join c in context.Customer on ca.CustomerId equals c.CustomerId 
    select new { a.AddressId, a.City, c.CustomerId, c.LastName }; 
+0

它加入了具有連接條件的元素,我需要列出左右表中的所有行。也許我只是將在聯結表中沒有id的元素連接到查詢結果... – przemo

+0

它會連接,但它會給我們內連接不完全連接的結果 –