在linq to sql 中左联接可以这么写:
from q1 in table1
join q2 in table2
on q1.col equals q2.col into tem_table
from q3 in tem_table.DefaultIfEmpty()
select new {
name1 = q1.col
name2 = q3 == null? "":q3.col
}
但是在linq to entity(3.5)中该语法会有运行时错误。所以需要另辟蹊径:
解决办法是将需要连接的表全部查出来以List<T>形式存储,然后用linq to sql 的语法对各个泛型集合进行左联接查询。
虽然会牺牲性能,不过在数据量不是很大的系统中也不失为一个解决办法。