free hit counter
LINQ to SQL e LINQ to Entities - Pietro Brambati Blog - Site Home - MSDN Blogs

LINQ to SQL e LINQ to Entities

LINQ to SQL e LINQ to Entities

Rate This
  • Comments 22

image

In questi intensi giorni che sto vivendo qui al TechEd a Barcellona ho avuto la possibilità di intervistare Luca Bolognese, italiano di nascita e ormai da tempo in quel di Redmond, dove lavora come Lead Program Manager.

 

In questo video intervista Luca ci parla di LINQ to SQL e LINQ to Entities e delle future direzioni che questi due framework potranno avere, degli scenari per il loro utilizzo e di come LINQ cambierà il modo in cui programmiamo oggi.

Un piccolo riassunto tecnico, che spero sia utile come introduzione al video:

LINQ to SQL è una delle implementazioni di LINQ che verranno rilasciate con Visual Studio 2008. LINQ to SQL è il modo più semplice per poter lavorare con SQL Server usando un nuovo modello di programmazione in C# 3.0 e Visual Basic 9. In questo modo nel nostro linguaggio .NET preferito scriviamo del codice che si avvicina ad una sintassi SQL rendendo di fatto meno complicato far "parlare" le nostre applicazioni fatte di classi, clicli e quant'altro con SQL Server, un DBMS relazionale in cui "vediamo" tabelle.

LINQ to Entities è un'altra implementazione di LINQ fatta per paralre con l' ADO.NET Entity Framework (EF), sia l'EF che LINQ to Entities verranno rilasciati dopo Visual Studio 2008, l' EF è infatti attualmente in Beta 2. L'EF è un framework che consentirà agli sviluppatori di lavorare con un maggior livello di astrazione, cioè uno sviluppatore si concentrerà solo sul modello concettuale proprio del modello Entità-Relazione, in maniera indipendente dallo storage sottostante sia esso SQL Server o un altro database. Ad esempio potrò lavorare con un' entità Cliente che potrà mapparsi su uno storage relazione anche su più di una tabella. Se volete saperne di più sulla Beta 2 dell' ADO.NET Entity Frameowrk, seguite pure questo link, in cui trovate una breve introduzione all' EF e a LINQ to Entites.

Spero sia utile

-Pietro

Leave a Comment
  • Please add 1 and 7 and type the answer here:
  • Post
  • sinceramente LINQ non mi sembra un gran cosa... sembra una feature creata tanto per fare qualcosa (e confondere ancora di più)... e il fatto che nasca già con due standard differenti non gioca a suo favore.

    poi magari, e ne sarò felice, verrò smentito e tra 5 anni scrivere LINQ statement sarà la prassi...

    però ora mi sembra molto macchinoso e non ne vedo l'utilità

    (ma io sono solo un mobile developer e non un guru....)

    ciao e complimenti per il blog

  • Se parli di LINQ,  ci sono in realtà diverse implementazioni per scenari diversi. Ad esempio posso usare la sintassi di linq per accedere ad oggetti, a nodi XML, a Dataset e anche come hai visto a strutture relazionali. Per te che sviluppi per dispositivi mobili puoi usare alcune di quste implementazioni in scenari con il Compact Framework 3.5.

    Ritengo che LINQ in tutte le sue forme sia una delle novità più importanti nei linguaggi di programmazione, ne sentivo l'esigenza sin da quando ero in univerità.

    Ti invito a guadare al mio webcast su LINQ (il 27/11) in cui cercerò di mostrarvi meglio il valore di LINQ, spero sia utile, alla peggio puoi sempre non utilizzarlo :-)

    Ciao e grazie per aver contiviso il tuo punto di vista

    -Pietro

  • Io ho provato LINQ insieme a C# 3.0 e devo dire che è una delle innovazioni che preferisco del nuovo ambiente di sviluppo. I risvolti sono fantastici ed alleggeriscono di molto alcune pratiche di programmazione che spesso sono macchinose e noiose.

  • Un'altra cosa interessante è che alcune delle novità sono legate al compilatore e non a CLR o alle estensioni nuove del linguaggio. Quindi è possibile scrivere codice C# 3.0 con Visual Studio 2008, che usa costrutti come Local Type Inference, Object Initializer etc, che semplificano e rendono più leggibile il codice, e poi far girare il programma generato su un computer dove è installato solo il Framework 2.0. Il codice MSIL generato è infatti lo stesso. Ovviamente questo non vale per tutte le novità del linguaggio, linq per primo, ma è interessante sapere come è evoluto il linguaggio.

  • beh, allora... mi siedo e aspetto di provarlo. probabilmente la mia diffidenza è dovuta inconsciamente  alla mia preparazione in materia, non certo perfetta ...

    ciao

    m.

  • Non preoccuparti: personalmente ritengo i linguaggi di programmazione affascinanti, so che per molti sono cose nuove e ci vuole tempo per capirle e farle proprie, spero che quello che troverai in giro sull'argomento possa esserti utile realmente.

  • Da diversi mesi ormai mi sono avvicinato (di soppiatto ) a LINQ ed alle due diverse declinazioni che

  • In questo post cercherò di spiegare la differenza di approccio nell'uso di LINQ to SQL e LINQ to Entities

  • In questo post cercherò di spiegare la differenza di approccio nell'uso di LINQ to SQL e LINQ to

  • LINQ to SQL e LINQ to Entities

  • Avrei la necessità di trasformare una query SQL in query LINQ, qualcuno può darmi una mano ?

    Posto di seguito la mia query:

    SELECT * FROM myTable WHERE

    MYCODE+MYYEAR+MYMONTH+MYDATE IN(

    SELECT  MYCODE+MYYEAR+MYMONTH+MAX(MYDATE) AS DATACO

      FROM MyTable

    WHERE MYCODE = 12345

    GROUP BY  MYCODE,MYYEAR,MYMONTH,MYCODE)

    Grazie in anticipo

  • correggo la mia query:

    SELECT * FROM myTable WHERE

    MYCODE+MYYEAR+MYMONTH+MYDATE IN(

    SELECT  MYCODE+MYYEAR+MYMONTH+MAX(MYDATE) AS DATACO

     FROM MyTable

    WHERE MYCODE = 12345

    GROUP BY  MYCODE,MYYEAR,MYMONTH,MYDATE)

    Grazie in anticipo

  • Ciao Marcello usa Contains:

    http://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains.aspx

    La IN non esiste in L2SQL, anche se poi il codice SQL generato può, ove necessario, contenerlo.

    Mi riocordo (se la memoria non m'inganna) qualche esempio sul blog di Marco Russo ....

    -Pietro

  • Ok, proverò con il Contains.

    e per il MAX(MYDATE) come posso ovviare ?

    Grazie

  • inoltre ho notato che la funzione di group by di LINQ è differente rispetto a quella di SQL... quindi in realtà non ottengo lo stesso risultato!

    Se ti viene in mente qualche suggerimento sarà ben accetto!

    Grazie

Page 1 of 2 (22 items) 12