2011-02-16 4 views
2

Je dessine un blanc sur la façon de le faire dans la requête Entity Framework (autre que dans plusieurs étapes)Entity Framework idées de requêtes (groupe par)

table de voiture:

id (identity) | CarName | RegisteredOn | RegisteredBy 

Fondamentalement, je besoin de récupérer une liste distincte de voitures, chacune avec le dernier utilisateur enregistré.

Si j'ai une table de voitures, chaque voiture sera entrée 1 ou plusieurs fois à différentes dates d'enregistrement.

ainsi CarA peut être entré 5 fois, avec 3 propriétaires, CarB peut être entré 1 fois et ainsi de suite.

Disons que je veux une requête pour 2/1/2011 pour voir toutes les voitures dans la table avec le dernier nom enregistré.

Est-ce facilement réalisable avec Linq? aurait-il besoin de 2 requêtes, d'abord pour obtenir la liste de toutes les voitures, 2ème pour rejoindre le dernier utilisateur enregistré?

Répondre

4

Du haut de ma tête, quelque chose comme ...

var q = from c in Context.Cars 
     group c by c.Name into g 
     select g.OrderByDescending(gc => gc.RegisteredOn) 
       .FirstOrDefault(); 
Questions connexes