in

dotNet Umbria

Il primo User Group in Umbria sul mondo .Net
Latest post 07-01-2008 11:48 PM by Paolo Possanzini. 1 replies.
Page 1 of 1 (2 items)
Sort Posts: Previous Next
  • 07-01-2008 10:22 PM

    • dardino
    • Top 10 Contributor
    • Joined on 05-19-2008
    • Perugia

    Come si scrive in LINQ?

    ho questa Query:

    SELECT
    dbo.PARTITE.ParCod,
    dbo.PARTITE.ParDat,
    dbo.PARTITE.ParSq1,
    dbo.PARTITE.ParSq2,
    dbo.InvitiPerGruppo.InvitoGruppo

    FROM dbo.PARTITE LEFT OUTER JOIN dbo.InvitiPerGruppo ON dbo.PARTITE.ParCod = dbo.InvitiPerGruppo.InvitoPartita

    Come si scrive in LINQ VB?

    ho cercato in giro ma trovo solo funzioni di raggruppamento (vedi group join) ma io non voglio raggruppare bensì "esplodere" e, visto che posso avere delle partite dove ancora non ho invitato nessuno, la LEFT OUTER JOIN mi garantisce che le partite vengano comunque fuori.
    Il risultato della query è una tabella con tutte le partite (anche ripetute) con il codicegruppo invitato insieme a quelle senza inviti ES:

    ParCod ParDat ParSq1 ParSq2 InvitoGruppo
    1 06/07/2008 21:00:00 Squadra A Squadra B 1
    1 06/07/2008 21:00:00 Squadra A Squadra B 2
    2 08/07/2008 22:00:00 SqA SqB NULL

     voglio ottenere la stessa cosa con LINQ invece che con con le Viste di SQL perché poi voglio filtrare i risultati

    qualcuno può aiutarmi?

    GRAZIE

    Gabriele

  • 07-01-2008 11:48 PM In reply to

    Re: Come si scrive in LINQ?

     Ciao Dardino, sempre cose interessanti.

    Le Left JOIN in Linq sono pienamente supportate, la sintatti però non è così intuitiva come per SQL

    Supponiamo che tu abbia un DataContext con le tabelle Partite e InvitiPerGruppo

    var result = from p in dc.Partite
                       join i in dc.InvitiPerGruppo on
                               p.Parcode equals  i.InvitoPartita
                       into gruppo

                       from g in gruppo.DefaultIfEmpty(new InvitoPartita())

                       select new {p.parcod, p.pardat, p.parsql1, p.parsql2, g.InvitoGruppo};

    Le parti che ho evidenziato fanno di questa join una left join.
    In bocca al lupo.

    Ciao

     

     

Page 1 of 1 (2 items)
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems