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