我錯過了一些基本的東西,我相信。LINQ - 首先在EF代碼中對父類進行外連接
我有以下EF代碼優先實體:公司和調制解調器。一家公司可以有一個調制解調器列表。
public class Company
{
public int ID { get; set; }
...
public virtual ICollection<Modem> Modems { get; set:}
}
public class Modem
{
public int ID { get; set; }
...
}
這產生的外鍵列Company_ID
,在Modem
表。
我想返回所有調制解調器及其公司ID,如果有的話。 在SQL我將做到以下幾點:
select * from Modem m
left outer join Company c on
m.Company_ID = c.ID
我所熟悉的做一個左外使用.DefaultIfEmpty()在DB-第一,而不是代碼優先加入LINQ。
我的困惑出現的地方是我沒有m.Company_ID在LINQ中進行連接,因爲它是由EF自動生成的。
如何在LINQ中執行此連接?
爲什麼您的調制解調器類沒有引用「公司」?像'公司公司{獲得;集;}'。 – juharr
你有沒有試過類似... db.Companies.SelectMany(c => c.Modems)?其中db是你的實體 – avi
@avi聽起來像一些調制解調器沒有鏈接到公司,因爲OP想要離開加入公司。 – juharr