Questa query restituisce Id dipendente, nome, ID azienda, nome azienda e città della società. Mi manca l'indirizzo e-mail del dipendente (indirizzo e-mail memorizzato nella tabella EmployeeEmailAddress) e i numeri di telefono dei dipendenti (numero di telefono memorizzato nella tabella EmployeePhoneNumbers)..SelezionaMany() e recupera dati da più di una tabella correlata
Avevo bisogno di aggiungere il .SelectMany() per ottenere la relazione della società madre e accedere all'ID, al nome e alla città della società. Ora, tuttavia, non posso accedere a nessuna proprietà non trovata nella tabella PersonOrgMap. Non riesco a navigare verso nessun altro tavolo. La rimozione di .SelectMany() mi consente di spostarmi su altri tavoli, ma perdo l'accesso alle informazioni della società madre.
var employees = Contacts.Where(c => c.ContactAttributes
.Any (ca => ca.AttributeID == 1153))
.SelectMany (x => x.ChildPersonOrgMaps)
.Select (c => new { employeeId = c.Child.ContactID,
c.Child.FirstName,
c.Child.LastName,
companyId = c.ParentContactID,
c.Parent.OrganizationName,
c.Parent.City
}
)
.OrderBy (c =>c.LastName).ThenBy(x => x.FirstName)
.Dump();
+1 per lo spudorato plug LINQPad ;-) Prodotto molto bello! – DenaliHardtail