在我的應用程序中,公司可以有許多員工,每個員工可能有多個電子郵件地址。將子查詢作爲逗號分隔值的Linq查詢
數據庫架構涉及像這樣的表:
公司 - > CompanyEmployeeXref - >員工 - > EmployeeAddressXref - >電子郵件
我使用實體框架和我想創建一個LINQ查詢返回公司的名稱以及員工電子郵件地址的逗號分隔列表。下面是我在嘗試查詢:
from c in Company
join ex in CompanyEmployeeXref on c.Id equals ex.CompanyId
join e in Employee on ex.EmployeeId equals e.Id
join ax in EmployeeAddressXref on e.Id equals ax.EmployeeId
join a in Address on ax.AddressId equals a.Id
select new {
c.Name,
a.Email.Aggregate(x=>x + ",")
}
Desired Output:
"Company1", "[email protected],[email protected],[email protected]"
"Company2", "[email protected],[email protected],[email protected]"
...
我知道這個代碼是錯誤的,我想我錯過了分組,但是它說明了這一點。我不確定語法。這甚至有可能嗎?謝謝你的幫助。
我有一些代碼可以做到這一點,但它會爲您的案例中的每家公司執行一個新的批處理。我會明天發佈,除非有人有更好的建議。 – 2010-05-18 21:18:34