我宁愿把它简化以下列方式
(from at in address_types
join a in address
on at.addresstype equals a.addresstype into tt
from ar in tt.DefaultIfEmpty()
where (ar != null && ar.addressid == 24)
select new
{
at.Description,
ar.Address1,
ar.Address2,
ar.City
})
为什么我们不需要这种检查的理由“(JA == NULL) “是因为我们已经在这一行限制了我们的设置”(ar!= null & & ar.addressid == 24)“。
同时这个查询的工作原理,我的POV是,在SQL查询中,LEFT JOIN也是冗余的。 http://msdn.microsoft:你会不会因为你的条件“a.addressid = 24”,所以SQL可以改写到INNER JOIN和LINQ查询以及对
(from at in address_types
join a in address
on at.addresstype equals a.addresstype
where at.addressid == 24
select new
{
at.Description,
a.Address1,
a.Address2,
a.City
})
从MSDN一些想法得到空行。 com/en-us/library/bb397895.aspx – 2012-07-13 08:45:56