Итак, у меня есть следующий запрос LINQ:
var qryVans = from v in objContext.vans
join s in objContext.schools on v.schoolID equals s.schoolID
join l in objContext.locations on v.lastKnownLocationID equals l.locationID
select new DisplayVan {
vanID = v.vanID,
vanName = v.vanName,
phone = v.phone,
capacity = (int)v.capacity,
schoolName = s.schoolName,
lastLocationName = l.locationName,
statusNote = v.statusNote,
isOffline = (v.isOffline == 1) ? true : false,
isPrayerRoom = (v.isPrayerRoom == 1) ? true : false,
isNotReady = (v.isNotReady == 1) ? true : false,
creationDate = v.creationDate,
modifiedDate = v.modifiedDate,
vanAssignments = from a in v.vanAssignments
where a.vanID == v.vanID
select a
};
Все работает нормально, за исключением того, что мне нужно заполнить навигационные свойства объекта VanAssignment
.Обратите внимание, что в моей проекции DisplayVan
я использую вложенный запрос для сбора назначений фургонов для данного фургона.У сущности vanAssignment
есть личность.Так как мне загрузить свойство vanAssignment.person
в этом запросе?
Кроме того, могу ли я написать это, чтобы сделать его более эффективным?
Спасибо за вашу помощь!
EDIT
Вот где мой код выше терпит неудачу:
После того, как я выполню toList () в запросе выше, я попытаюсь получить доступ к нужному человеку, как это:
List<DisplayVan> lstVans = qryVans.toList<DisplayVan>();
foreach(DisplayVan objVan in lstVans) {
Console.WriteLine(objVan.person.firstName);
}
Теперь, поскольку я не загружал сущность человека с сущностью vanAssignment, свойство навигации персонажа имеет значение NULL и выдает ошибку.
Мой вопрос центрируется вокругзагрузить в это лицо сущность вместе с vanAssignment?
Надеюсь, это поможет.