我大力搜索對此的答案,但我無法找到(或理解)解決方案。我有一個查詢,我正在加入另一個可能有或沒有關聯記錄的表。下面是該查詢:實體框架 - 處理沒有來自連接表的記錄的連接
var educationUniversity = result.new_educationUniversity.Select(c => new
{ c.majorDegree, c.dateEnd, c.dateStart, c.institutionName,
c.degreeProgramCompletionStatus, c.institutionAddress,
attachmentId = c.attachmentId ?? 0,
fileName = c.new_attachments.fileName ?? "No Attachment"}).ToList();
第一個表是「new_educationUniversity」,它擁有用戶的學院或大學學位的細節。用戶可能已上傳附件(存儲在「new_attachments」表中)。 attchmentID是「new_attachments」表中的主鍵和「new_educationUniversity」表中的外鍵。 EF看到了這種關係。
我將結果綁定到中繼器,但如果沒有相關的附件,代碼將失敗。一切工作正常,如果有附件或如果我刪除對fileName的引用。
上面,我正在處理,如果fileName爲NULL(或至少我試圖),但我懷疑我的問題是該記錄根本不存在,這是不同於NULL我猜。我試過使用類似:c.new_attachments.fileName.SingleOrDefault()或DefaultIfEmpty()沒有運氣。
作爲比喻,假設您有一個CUSTOMERS表和一個ORDERS表。你想查詢以下:
- 客戶姓氏 - 客戶第一名稱 - 客戶最近的訂單ID
從來沒有誰買什麼東西。然而,您已註冊的客戶。我確信我正在做一些完全不討好的事情,所以任何協助都非常感謝。謝謝!
你要求的是一個「左連接」,有很多例子可以說明如何做到這一點。 http://stackoverflow.com/questions/3404975/left-outer-join-in-linq或http://msdn.microsoft.com/en-us/library/vstudio/bb397895.aspx –
找到一種技術,通過工作這個鏈接雖然我不完全理解。謝謝! – Matt