0
我正在嘗試獲取客戶端記錄的列表以及最近的ClientNote記錄。如果客戶端沒有關聯的筆記,我希望ClientNote對於該客戶端爲空(類似於TSQL中的LEFT JOIN)。Tricky在EF中與外部連接加入表中的條件
我有2個相關的表看起來像:
CREATE TABLE [dbo].[Client](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ClientNumber] [varchar](10) NOT NULL,
[Name] [varchar](100) NOT NULL,
[AssociateName] [varchar](30) NOT NULL,
[AssignedToID] [int] NULL,
[District] [varchar](6) NOT NULL,
[RegionID] [int] NOT NULL,
[CreateDate] [datetime] NOT NULL,
)
CREATE TABLE [dbo].[ClientNote](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ClientID] [int] NOT NULL,
[Note] [varchar](4000) NOT NULL,
[NoteDate] [datetime] NULL,
[TicklerDate] [datetime] NULL,
[EnteredByAgentID] [int] NOT NULL,
[CreateDate] [datetime] NOT NULL,
)
我需要一個EF LEFT OUTER JOIN返回客戶端和最新ClientNote當 Client.Name LIKE '%IKE%' AND(或者沒有ClientNote存在或ClientNote CreateDate超過60天)。 因此,我想爲每個匹配返回兩個對象:一個客戶端和一個可選(空)客戶端筆記 我已經嘗試了很多東西,我只是沒有得到我尋求的結果。
似乎並沒有工作。我做了幾次嘗試,但沒有成功。 – WebWarrior 2012-08-16 05:33:55
@ user856806你得到了什麼錯誤?當你說它不起作用你是什麼意思?如果你想訪問返回的內容,可以這樣做:'var myAssociateName = clientInfo.a.AssociateName'或者如果你想在第二個表中做些什麼,你可以做一個'var myNoteDate = clientInfo.atNoteDate' – Richard 2012-08-16 10:07:16
@ user856806我注意到,在你的數據庫中,你的CreateDate作爲DateTime字段,而原始查詢無法工作,我修改它以反映你的數據庫佈局。 – Richard 2012-08-17 18:19:37