Frage

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,

                                      });

Also, ich bin immer noch ziemlich neu in LINQ to SQL und ich brauche Hilfe, herauszufinden, wie diese in eine linke äußere drehen verbinden, anstatt eine innere Verknüpfung.

Von dieser Abfrage oben, ich bin auf der Suche alle Agenturen aus der Agenturen Tisch haben, und dann die Datensätze auf der rechten Seite (EnterpriseID, CorrectedDate, etc) null sein kann, etc, wenn keine Datensätze vorhanden sind.

Ich bin ziemlich sicher, ich brauche Select zu verwenden, aber ich konnte einige Hinweise verwenden drehen diejenigen schließt sich in LEFT OUTER JOINS, so habe ich eine Liste aller Agenturen dann ihre möglichen Aufzeichnungen auf der rechten Seite.

War es hilfreich?

Lösung

Im Folgenden finden Sie einige Code, bekommen Sie begonnen haben.

var auditAgencyRecords = (
from ag in db.Agencies
group join ara in db.AuditRuleAccounts on ag.Agency_Id equals ara.AgencyID into AgAra = group
from w in AgAra.DefaultIfEmpty()
group join arr in db.AuditRuleResults on ara.AuditRuleAccountID equals arr.AuditRuleAccountID into AraArr = group
from x in AraArr.DefaultIfEmpty()
group join are in db.AuditRuleEnterprises on arr.AuditRuleEnterpriseID equals are.AuditRuleEnterpriseID into ArrAre = group
from y in ArrAre.DefaultIfEmpty()
where (rules.Select(r => r.EnterpriseID).Contains(arr.AuditRuleEnterpriseID))
select new
{    
     AgencyID = w.Agency_Id,
     AgencyName = w.Agency_Name,                                           
     AuditRuleEnterpriseID = y.AuditRuleEnterpriseID,
     AuditRuleEnterpriseName = y.OverrideDisplayName,
     CorrectedDate = w.CorrectedDate,
     NbrDaysToCorrect = w.NbrDaysToCorrect,
});

Andere Tipps

Hier ist ein gutes Beispiel dafür, wie es zu tun. Es ist wichtig, nicht über NULL-Werte zu vergessen, dass diese zurückbringen können -. Das hat mich gebissen einmal hart

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top