Avatar billede Tampico Praktikant
13. oktober 2010 - 14:44 Der er 1 løsning

LINQ - Filtrere en child collection

Hej Eksperter

Jeg har et problem der nager mig noget så forfærdeligt, og som jeg ikke kan finde en løsning på.
Grundlæggende handler det om at kunne filtere i en "child-collection" med LINQ - eksempel følger:

Tabel 1 -> Spedition_order
Tabel 2 -> Spedition_order_item_pallet
Tabel 3 -> Pallet

Tabel 2 er lavet for at pallerne kan kører med flere Spedition_order.

Jeg ønsker dels at kunne filtere på den specifikke Spedition_order, men også at sortere de Paller fra, der evt. måtte være blevet slettet undervejs.
Pallerne bliver ikke slettet fra Db'en, men får en slettedato, og det skal således være muligt at kunne synliggøre pallen igen ved at fjerne flaget.

Jeg har lidt kode som illusterer problemet lidt mere konkret, og som henter data ud via Entity-frameworket.

----------------------------------------------------------

Dim entities = myEntity.Instance.Context. _
Spedition_order.Include_
Include("Spedition_order_item_pallet.Pallet")


Dim query = From Spedition_order In entities _
Where Spedition_order.Spedition_order_id = _ myDistributionOrderObj.Spedition_order_id _
AND Spedition_order.Spedition_order_item_pallet.Where(Function(i) i.Pallet.Pallet_deleted_date = Nothing)
Select Spedition_order


mySpeditionOrderObj = query.FirstOrDefault

------------------------------------------------------------

Det er altså specielt filtreringen på den underliggende collection jeg ønsker at filtere på, da det andet virker upåklageligt.

Spedition_order.Spedition_order_item_pallet.Where(Function(i) i.Pallet.Pallet_deleted_date = Nothing)

Håber nogen kan tænde et lys et sted :-)
Avatar billede Tampico Praktikant
24. oktober 2010 - 10:34 #1
Lukker

Løsningen er vist at opdatere til Framework 4.0 hvori det ser ud til at kunne lade sig gøre - pt. er det løst på anden måde.
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