Я хотел бы сделать один вызов базы данных для получения следующих данных, но я изо всех сил пытаюсь понять, что должно выглядеть LINQ. Вот моя текущая реализация (я знаю, что это плохо !!):Как вы извлекаете записи и все дочерние записи в одной базе данных в объектах ADO.NET?
var photos = from photo in entitiesContext.Photo
join pg in entitiesContext.PhotoGallery on photo.PhotoGallery.PhotoGalleryID equals pg.PhotoGalleryID
where pg.PhotoGallery == photoGalleryID
select photo;
var photoList = photos.ToList();
foreach (var photoForLoading in photoList)
{
photoForLoading.UserReference.Load();
photoForLoading.PhotoComments.Load();
foreach (var comment in photoForLoading.PhotoComment)
{
comment.UserReference.Load();
}
}
return photoList;
Так как вы можете видеть выше, я хочу получить:
- Все фотографии с конкретной фотогалерее:
- подробности пользователя на каждой фотографии
- комментарии на каждой фотографии
- Th е пользовательские детали на каждый комментарий
Как это сделать в LINQ с ADO.NET Entities Framework?
Cheers, Зола.
Я предполагаю, что это приведет к тому, что один оператор SQL (с парой внутренних соединений) отправлен на SQL-сервер? Кроме того, фотографии могут не содержать каких-либо комментариев, нужно ли мне делать какую-то форму левого внешнего соединения? – Ash
Нет, если есть комментарий, у вас будет значение, если нет комментариев, вы получите NULL. Проверить нули должно быть достаточно. – mhenrixon