我有以下SQL查询,它返回我期望的内容,我想在LINQ中完成同样的事情,但到目前为止我的结果并不那么引人注目。我认为,主要障碍是数据来自3个独立的数据库。我能够在LINQ中实现这一点,但它非常慢,see here。
所以,进一步说,这里是硬编码的Guid()是传递的唯一例外:
SELECT en.ClientID, p.LastName, p.FirstName, NurseName = dm2.FirstName + ' ' + dm2.LastName, SocialWorkerName = dm.FirstName + ' ' + dm.LastName, en.EnrollmentDate, en.DisenrollmentDate, ESWorkerName = sw.FirstName + ' ' + sw.LastName, sw.Phone
FROM CMO.dbo.tblCMOEnrollment en
LEFT OUTER JOIN CMO.dbo.tblSupportWorker sw
ON en.EconomicSupportWorkerID = sw.SupportWorkerID
INNER JOIN Connect.dbo.tblPerson p
ON en.ClientID = p.PersonID
LEFT OUTER JOIN aspnetdb.dbo.tblDemographics dm
ON en.CMOSocialWorkerID = dm.UserID
LEFT OUTER JOIN aspnetdb.dbo.tblDemographics dm2
ON en.CMONurseID = dm2.UserID
WHERE (en.CMOSocialWorkerID = '060632EE-BE09-4057-B17B-2D0190D0FF74'
OR
en.CMONurseID = '060632EE-BE09-4057-B17B-2D0190D0FF74')
AND (en.DisenrollmentDate IS NULL
OR
en.DisenrollmentDate > GetDate())
ORDER BY en.DisenrollmentDate, p.LastName
答案 0 :(得分:0)
由于您要发出1个查询,因此您应该只使用1个datacontext。将视图添加到其中一个数据库以表示其他数据库表,然后将其全部添加到一个LinqToSqlClasses文件中。
如果您无法修改三个数据库中的任何一个,请创建第四个数据库,其中包含对其他三个数据库的视图。