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仍然很陌生,我需要帮助弄清楚如何将它变成左外连接,而不是内连接。如何将这些LINQ连接转换为左外连接?
从上面的查询来看,我希望Agencies表中有所有代理,然后右边的记录(EnterpriseID,CorrectedDate等)可以为空,如果没有记录存在。
我很确定我需要使用SelectMany,但我可以使用一些指导将这些连接转换为左外连接,所以我列出了所有代理然后右边的可能记录。
这是什么?......组加入as ... equals ...到xs = group ...`语法中?我以前没见过这样的组,我似乎无法找到任何文档。 – 2014-08-07 19:43:54