2010-06-11 34 views
0

我有兩個表,我通過VS實體數據模型圖工具設置。我試圖做一個正確的外連接,它不返回第二個表的結果。如何在L2E中獲得正確的外連接?

我已經建立了一個0..1到圖表工具的許多關係。

當我運行Linq-To-Entities查詢時,它仍然默認爲INNER JOIN。根據我對實體的理解,如果我使用VS建立關係,當我加入表格時,它應該根據我提供的關係自動計算出連接語法。它似乎沒有這樣做。

我正在使用EF v1(不是Linq-to-Sql)。

查詢我運行:

from s in SomeTable 
join t in SomeOtherTable on s.ID equals t.ID 
select new { s.MyFieldName, t.MyOtherFieldName } 
+0

什麼查詢您運行的,到底是什麼?此外,請執行左外部連接並右鍵/左鍵交換。 – 2010-06-11 18:34:43

+0

嘗試切換,並得到同樣的事情。我也在使用LINQPad。不要認爲它會過濾出空值。 – Dan 2010-06-11 19:07:09

回答

1

DefaultIfEmpty()將在Entity Framework 4幫助:

from s in SomeTable 
join t in SomeOtherTable on s.ID equals t.ID into myTemps 
from temp in myTemps.DefaultIfEmpty() 
select new { s.MyFieldName, temp.MyOtherFieldName } 
+0

根據我見過的文檔,DefaultIfEmpty只支持L2S。 – Dan 2010-06-14 12:54:17

+0

@Dan:的確......我的樣本和答案是使用EF4開發的。對不起,我現在可以看到你指定了EF1。這個答案不會直接回答你的問題,但希望對將來使用EF4 +的其他人有所幫助。 – 2010-06-14 15:55:52