Avatar billede carstensuurland Nybegynder
17. august 2009 - 20:11 Der er 2 kommentarer

LINQ to SQL spørgsmål

Hejsa,

Jeg har (via LINQ to SQL) oprettet min database model, så jeg nu har tilsvarende klasser i mit projekt (via dbml-filer).

Jeg er ny i forhold til LINQ og har derfor brug for lidt hjælp til at lave et bestemt udtræk.

En af mine klasser hedder en "Master". En Master har et ID og en version. Én Master kan godt findes flere gange i min model, blot med forskellige versioner (Den bagvedliggende db-tabel hedder Masters)

Spørgsmålet er nu, hvordan jeg laver en LINQ forespørgsel der giver mig X-antal Masterobjekter - ét Master objekt for hvert unikt MasterID, men kun den seneste version?

(Se eksempel på rå data nedenfor)

MasterID    Version
--------------------------
ABC        1
ABC        2  (X den skal med)
DEF        1  (X den skal med)
HIJ        1
HIJ        2
HIJ        3  (X den skal med)
Avatar billede arne_v Ekspert
18. august 2009 - 04:58 #1
Prøv:

            IEnumerable<X> q = from row in tbl
                          where row.Version == tbl.Where(r => r.MasterID == row.MasterID).Select(r => r.Version).Max()
                          select row;

(kun testet med LINQ to Objects)
Avatar billede arne_v Ekspert
13. september 2009 - 02:38 #2
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester