Je voudrais faire un appel de base de données pour récupérer les données suivantes, mais j'ai du mal à comprendre à quoi devrait ressembler le LINQ. Voici mon implémentation actuelle (je sais que c'est mauvais !!):Comment extraire les enregistrements et tous les enregistrements enfants dans une base de données dans les entités 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;
Comme vous pouvez le voir ci-dessus, je veux récupérer:
- Toutes les photos d'une galerie photo spécifique:
- Les détails de l'utilisateur sur chaque photo
- Les commentaires sur chaque photo
- Th détails e utilisateur sur chaque commentaire
Comment puis-je faire cela dans LINQ avec cadre Entités de ADO.NET?
Cheers, Ash.
Je suppose que cela se traduira par une instruction SQL (avec quelques jointures internes) envoyé au serveur SQL? Aussi les photos ne peuvent contenir aucun commentaire, aurais-je besoin de faire une sorte de jointure externe gauche? – Ash
Non s'il y a un commentaire, vous aurez une valeur, s'il n'y a pas de commentaire, vous obtiendrez NULL. Vérifiez les nulls devrait être suffisant. – mhenrixon