var auditAgencyRecords = (from ag in db.Agencies
join ara in db.AuditRuleAccounts on ag.Agency_Id equals ara.AgencyID
join arr in db.AuditRuleResults on ara.AuditRuleAccountID equals arr.AuditRuleAccountID
join are in db.AuditRuleEnterprises on arr.AuditRuleEnterpriseID equals are.AuditRuleEnterpriseID
where (rules.Select(r => r.EnterpriseID).Contains(arr.AuditRuleEnterpriseID))
select new
{
AgencyID = ag.Agency_Id,
AgencyName = ag.Agency_Name,
AuditRuleEnterpriseID = arr.AuditRuleEnterpriseID,
AuditRuleEnterpriseName = are.OverrideDisplayName,
CorrectedDate = arr.CorrectedDate,
NbrDaysToCorrect = arr.NbrDaysToCorrect,
});
Итак, я все еще довольно новичок в LINQ to SQL, и мне нужна помощь, чтобы выяснить, как превратить это в левое внешнее соединение, а не внутреннее соединение.
Из приведенного выше запроса я ищу ВСЕ агентства из таблицы Agencies, а затем записи справа (EnterpriseID, CorrectedDate и т. Д.) Могут быть нулевыми и т. Д., Если нет записей.
Я вполне уверен, что мне нужно использовать SelectMany, но я мог бы использовать некоторые рекомендации, чтобы превратить эти объединения в ЛЕВЫЕ ВНЕШНИЕ СОЕДИНЕНИЯ, поэтому у меня есть список всех агентств, а затем их возможные записи справа.