0 votes

Comment obtenir une référence à un objet parent apparenté lors de la sélection d'une liste d'objets enfants à l'aide de l'entity framework ?

En utilisant EF, comment puis-je accéder aux valeurs d'une propriété parentale lorsque j'accède à une liste d'objets enfants.

Par exemple, j'ai un objet Projet et un objet Feuille de temps.

Projet
Id
Nom
...

Feuille de temps
ProjectId
UserId
Date
TimeSpent
...

Je comprends comment récupérer un projet et les feuilles de temps associées, mais que faire si je veux récupérer toutes les feuilles de temps pour un utilisateur donné et afficher simplement le nom du projet avec chaque enregistrement de feuille de temps.

Par exemple, Nom du projet, Date, Temps passé.

La meilleure pratique consiste-t-elle à créer une nouvelle entité pour façonner cet ensemble de résultats ou dois-je simplement renvoyer IEnumerable et avoir accès au champ .Project.Name ?

C'est super facile en utilisant Linq to Sql ou tout simplement ADO.net/SPs etc mais ça me tue sur EF

Des idées ?

0voto

Craig Stuntz Points 95965

Les enfants ont toujours une relation avec leurs parents. Dans votre cas, il est probablement appelé quelque chose comme "TimeSheet.Project". Donc vous pouvez écrire une requête comme :

var q = from u in Context.Users
        where u.UserId == userId
        from ts in u.TimeSheets
        select new 
        {
            ProjectName = ts.Project.Name,
            Date = ts.Date,
            TimeSpent = ts.TimeSpent
        };

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X