Этот запрос возвращает идентификатор сотрудника, имя, фирменный номер, название компании и город компании. Мне не хватает адреса электронной почты сотрудника (адрес электронной почты, хранящийся в таблице EmployeeEmailAddress) и номера телефонов сотрудников (номер телефона, хранящийся в таблице EmployeePhoneNumbers)..SelectMany() и получение данных из более чем одной связанной таблицы
Мне нужно было добавить .SelectMany(), чтобы получить отношения с родительской компанией и получить доступ к идентификатору компании, имени и городу. Однако теперь я не могу получить доступ к каким-либо свойствам, не найденным в таблице PersonOrgMap. Я не могу перейти к другим таблицам. Удаление .SelectMany() позволяет мне перемещаться по другим таблицам, но я теряю доступ к информации о родительской компании.
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 для бесстыдного LINQPad plug ;-) Очень хороший продукт! – DenaliHardtail