Avatar billede iwerksom Nybegynder
25. august 2010 - 11:35 Der er 9 kommentarer

Linq - fra INNER join til LEFT join

Hej Eksperter
Jeg kæmper med LINQ og specielt dens join syntax.
Har følgende Inner join som jeg gerne vil have lavet om til en Left JOIN så alle entries fra OrdreList kommer med.

public static IEnumerable<OrderList> SelectFullOrderListByPeriod(int LånerNr, int PeriodID)
    {
        return Table
            .Where(m => m.TilLånerNr == LånerNr)
            .Where(m => m.period_id == PeriodID)
            .Join(
            tblMatKøb.Table,
            m => m.Indeks_i_MiP,
            k => k.Indeks_i_MiP,
            (m, k) => new OrderList { BestillingsDato = m.BestillingsDato, FaktBeløb = m.FaktBeløb, OrdreNummer = m.OrdreNummer, OrdreType = m.OrdreType, Total = (m.FaktBeløb + k.MatPris) });
       
    }

Er der nogen som kan hjælpe mig at skrive ovenstående query om?
På forhånd tak.
Avatar billede arne_v Ekspert
25. august 2010 - 18:15 #1
Avatar billede iwerksom Nybegynder
25. august 2010 - 22:44 #2
burde der ikke være en nemmere måde at gøre det?
Eller skal Linq bare være besværligt når man vil lave andet end en simpelt SELECT?
Avatar billede Syska Mester
25. august 2010 - 23:05 #3
Du kan jo bare lave SQL :-)

Men ja, left join er noget crap ... synes jeg også selv, men tænk på hvor mange problemer det også løser for dig :-)

Kig på NHibernate, tror de har en meget nemmere måde at lave det på, det er en lidt mere moden ORM.
Avatar billede arne_v Ekspert
28. august 2010 - 23:32 #4
JOIN i koden er noget hø med ORM.

JOIN skal laves af ORM når den loader objekterne.
Avatar billede iwerksom Nybegynder
30. august 2010 - 09:42 #5
kan man få den til at lave andet end inner join med entity association?
Avatar billede Syska Mester
30. august 2010 - 10:51 #6
Hvad tænker du på ?
Avatar billede iwerksom Nybegynder
30. august 2010 - 15:36 #7
Noget i retning af

MyDatabaseDataContext db = new MyDatabaseDataContext();
var matKøb = db.tblMatkøb.Single( m => m.Indeks_i_MIP == Indeks_i_MIP);
var query = OrderList

For på den måde at udnytte relationen mellem de to tabeller. Så jeg får den række fra tblMatKøb som svarer til min række i tblOrder(OrderList)
Avatar billede Syska Mester
30. august 2010 - 22:26 #8
left, outer og alle specielt joins er wag som arne_v skrev.

NHibernate er i hvert fald den næste ORM jeg ville kigge på, der er nogen uber fede ting.

Men LINQ2SQL har vist ikke mange-til-mange relationer som virker godt ...

mvh
Avatar billede arne_v Ekspert
26. september 2010 - 20:54 #9
Tid at få afsluttet her?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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