我试图通过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