我有Join的查詢。這給了我一個內部聯接。我想要完成的是左連接。 我嘗試使用DefaultIfEmpty()
,但我無法讓它工作。也許我把它放在查詢的錯誤部分。如何獲得Linq上的左連接
任何人都能指出我出去使用DefaultIfEmpty()
的正確方法嗎?
下面是我當前的查詢:
var AppList = (de.ComputerUserApplication)
.Where(CUA => CUA.EmployeeID == employeeID)
.DefaultIfEmpty()
.Join(de.ApplicationTypeMasters,
CUA => CUA.RecordType,
ATM => ATM.Code,
(CUA, ATM) => new ApplicationModel
{
ApplicationNo = CUA.ApplicationNo,
ApplicationCode = CUA.RecordType,
ApplicationTypeCode = "",
ApplicationName = ATM.Title + " - " + CUA.Description,
Status = CUA.Status
});
另外,我不太確定我是否有正確的查詢。如果你可以,下面是我原來的查詢:
select Cua_ApplicationNo, Cua_Type_Rec, ATM_ApplicationTitle, Cua_Status from ComputerUserApplication
left join ApplicationTypeMaster
on Cua_Type_Rec = ATM_ApplicationCode
where Cua_EmployeeID = 'someID'
@anon把它放在一個新的行沒有任何區別 – Rob
是的。這只是針對我們的內部編碼標準。我需要知道的是如何使用DefaultIfEmpty來實現左外連接。如果你能指出我使用DefaultIfEmpty的方式有什麼問題,那將是非常好的。 – marijanluvlee
我相信'.DefaultIfEmpty'應該放在右邊的桌子上('ApplicationTypeMasters'),而不是放在左邊的桌子上。也就是說,該行應爲:'。加入(de.ApplicationTypeMasters.DefaultIfEmpty(),' – Rob