Итак, я хотел сделать linq-запрос из моего левого соединения sql (см. Ниже).Я просто не знаю, как правильно расположить условие ".TournamentId = 1" в соединениях.В настоящее время при запуске этого в моей базе данных я получаю результаты, которые я хочу.это пара строк из таблицы типов с пустыми полями.
select typ.Id, stat.PromoterId, temp.PromoterId
from ReportTypes type
left join ReportTemplateStatus status on status.PromoterId = type.TypeId and status.TournamentId = 1
left join ReportTemplates temp on temp.ClientId = status.PromoterId and temp.TournamentId = 1
Promoter
- promoterId
- promoterName
Tournament
- tournamentId
- tournamentName
ReportType
- TypeId
ReportTemplateStatus
- promoterId (this is the key)
- tournamentId
- typeId
ReportTemplates
- promoterId
- tournamentId
В настоящее время это то, что у меня есть:
var report = from type in context.ReportTypes
join status in context.ReportTemplateStatus on type.TypeId equals status.TypeId
join temp in context.ReportTemplates on status.promoterId equals temp.promoterId into iReports
from reports in iReports.Where (rep => rep.promoterId == _promoterId && rep.tournamentId == _tournamentId).DefaultIfEmpty()
select new { my fields});
, но это дает мне ноль.
есть идеи, как должен работать linq?может быть, разделить на «itables» (iReports) или что-то?