我試圖通過linq2sql實現以下,但不成功。linq2sql左加入「多選」
我有會員和參考表。數據庫的設計方式是成員可以有多個(> = 0)引用。作爲查詢的結果,我想要的是成員的列表(行),其中成員的所有引用都被「收集」在一列中。
我已經實現了以下查詢,但是對於這一個,每個Reference都有一行。
var refs = (from m in db.Members
join
r in db.References on m.PID equals r.PID into g
from o in g.DefaultIfEmpty()
select new
{
member = m,
name = (o == null ? "" : o.NameSurname)
});
我覺得我需要插入的SelectMany somewher :)
您能給在實現這一目標的提示?
第一個查詢不起作用,因爲在查詢後我可以訪問引用名稱 - 姓。第二個在計算上不可行,因爲它會爲我的每個成員查詢引用表。我有大約6M的成員和4M的參考 - 所以在最壞的情況下,它意味着查詢4M行數據6M次。 – oop123123 2010-12-24 12:40:48