Esta consulta devuelve el Id del empleado, el nombre, el ID de la empresa, el nombre de la empresa y la ciudad de la empresa. Me falta la dirección de correo electrónico de los empleados (dirección de correo electrónico almacenada en la tabla EmployeeEmailAddress) y los números de teléfono de los empleados (número de teléfono almacenado en la tabla EmpleePhoneNumbers)..SelectMany() y obtener datos de más de una tabla relacionada
Necesitaba agregar .SelectMany() para obtener la relación de la empresa matriz y acceder a la identificación, nombre y ciudad de la compañía. Ahora, sin embargo, no puedo acceder a ninguna propiedad que no se encuentre en la tabla PersonOrgMap. No puedo navegar a ninguna otra tabla. La eliminación de .SelectMany() me permite navegar a otras tablas, pero pierdo el acceso a la información de la compañía matriz.
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 para el enchufe descarado LINQPad ;-) Muy buen producto! – DenaliHardtail