Помогите преобразовать многопользовательский SQL-запрос в LINQ - PullRequest
0 голосов
/ 07 октября 2010

У меня есть приведенный ниже SQL-запрос, который возвращает то, что я ожидаю, и мне хотелось бы добиться того же в LINQ, но пока мои результаты были менее впечатляющими.На мой взгляд, основным препятствием является то, что данные поступают из 3 отдельных БД.Мне удалось сделать это в LINQ, но это очень медленно, см. Здесь .

Итак, без дальнейших церемоний, вот здесь, с жестко закодированным 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

1 Ответ

0 голосов
/ 07 октября 2010

Поскольку вы хотите выполнить 1 запрос, вы должны использовать только 1 datacontext.Добавьте представления в одну из баз данных для представления других таблиц баз данных, затем добавьте все это в один файл LinqToSqlClasses.

Если вы не можете изменить одну из трех баз данных, создайте четвертую базу данных с представлениями для другихтри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...