3 Stimmen

Entity Framework holt die neuesten Datensätze in der Liste der Datensätze mit Datum

Ich habe eine Sql-Server-Tabelle mit Datensätzen (die nicht neu ist) Sie enthält 1 oder mehrere Datensätze (Messungen) für eine Person, und alle Datensätze haben ein Datumsfeld. Für Person 1 habe ich also 5 Datensätze/Messungen, datiert auf den 1. Januar, 2. Januar, 8. Februar, 19. März und 2. Juli. Für Person 2 habe ich vielleicht 10 Datensätze, und die Daten sind auch unterschiedlich.

Nun möchte ich sowohl für Person 1 als auch für Person 2 den neuesten Datensatz auswählen; für beide Personen 1 Datensatz, mit der neuesten Datumsangabe im Datetime-Feld.

Kann das mit dem EF gemacht werden?

Mit freundlichen Grüßen, Michel

Beispieldaten

personId Datum Länge

1 01-13-2009 180

1 01-14-2009 190

1 01-15-2009 184

2 02-18-2009 170

2 01-17-2009 190

In dieser Tabelle möchte ich den neuesten Datensatz für Person 1 (= Zeile 3) und für Person 2 (= Zeile 4)

6voto

Craig Stuntz Punkte 124703
from p in Context.WhateverYourTableNameIs
group p by p.PersonId into g
select new 
{
    PersonId = g.Key
    MostRecentMeasurementDate = (DateTime?)
                                (from m in g
                                 order by m.Date desc
                                 select m.Date).FirstOrDefault())
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X