【发布时间】:2014-07-02 07:31:05
【问题描述】:
我有一个带有 where 子句的外连接。它返回多个响应,我需要选择第一个。
from p in context.Persons
join c in context.Companies on p.PersonId equals c.CompanyId
join a1 in context.Addresses on p.AddressDeliveryId equals a1.AddressId into da from x1 in da.DefaultIfEmpty()
join a2 in context.Addresses on p.AddressInvoiceId equals a2.AddressId into ia from x2 in ia.DefaultIfEmpty()
//This line returns multiple answers
join a3 in context.Addresses on p.PersonId equals a3.PersonId into pa from x3 in pa.Where(a3 => a3.AddressLocationId == 5).DefaultIfEmpty()
orderby p.PersonId descending
where p.IsProvider.Equals(false)
&& p.Obsolete.Equals(false)
&& p.Locked.Equals(false)
&& p.IsCustomer.Equals(true)
&& p.PersonType.Equals(1)
select new
{
p, c, x1, x2, x3
};
所以我需要 x3 只返回第一行。请帮忙
【问题讨论】: