List<ServicePacksDTO> allServicePacks = new List<ServicePacksDTO>();
using (var db = new DataContext())
{
allServicePacks=(
from sp in db.ServicePacks
join st in db.States.DefaultIfEmpty() on sp.State_id equals st.State_Id
join type in db.ServiceTypes on sp.ServiceType_Id equals type.ServiceType_Id
where
(type.ServiceType_desc.ToLower() == "accepted")
orderby sp.AustState_id
select sp.ToServicePacksDTO(db)).ToList();
}
当前代码工作正常,直到我尝试在状态上进行外连接。是否可以轻松地做到这一点?
答案 0 :(得分:0)
首先,你需要提供更多细节“工作正常,直到我尝试做xx”。
什么不起作用?有错误吗?出乎意料的结果?
忘记DTO投影和db.ServiceTypes
加入,在db.ServicePacks
和db.States
之间执行LOJ,请执行以下操作:
var x = (from sp in db.ServicePacks
join st in db.States on sp.State_id equals st.State_id into spst
from x in spst.DefaultIfEmpty()
select new { /* fields */ }
).ToList();
首先尝试,确保它有效(应该),然后添加其他连接和投影。