Linq to SQL

di: Giuseppe Marchi     12 Marzo 2008

Aggiornamento

Per quanto riguarda l'update di informazioni presenti nel nostro database SQL Server, non dobbiamo far altro che selezionare i dati da aggiornare tramite una query di selezione, aggiornare i valori delle proprietà che ci interessano e infine chiamare il metodo SubmitChanges() dell'oggetto che rappresenta il contesto di persistenza.

Esempio di aggiornamento (C#)

NorthwindDataContext northiwd = new NorthwindDataContext();
using (northiwd)
{
  Product maio = northiwd.Products.Single(p => p.ProductName == "Maionese");

  maio.UnitPrice = 2.3m;
  northiwd.SubmitChanges();
}

Esempio di aggiornamento (VB.NET)

Dim northiwd As New NorthwindDataContext()
Using (northiwd)

  Dim maio = (From p In northiwd.Products _
             Where p.ProductName = "Maionese" _
             Select p).Single()

  maio.UnitPrice = 2.3
  northiwd.SubmitChanges()

End Using

Tramite la sintassi C# 3.0, la selezione di un singolo prodotto viene facilitata attraverso l'utilizzo delle Lambda Expression.

Cancellazione

L'operazione di delete è simile a quella appena vista di aggiornamento, con l'unica differenza che in questo caso viene chiamato il metodo DeleteOnSubmit() che esplicita la cancellazione delle informazioni selezionate al successivo submit delle modifiche al database.

Esempio di cancellazione (C#)

NorthwindDataContext northwind = new NorthwindDataContext();
using (northwind)
{
  Product maio = northwind.Products.Single(p => p.ProductName == "Maionese");

  northwind.Products.DeleteOnSubmit(maio);
  northwind.SubmitChanges();
}

Esempio di cancellazione (VB.NET)

Dim northwind As New NorthwindDataContext()
Using (northwind)

  Dim maio As Product = (From p In northwind.Products _
                        Where p.ProductName = "Maionese" _
                        Select p).Single()

  northwind.Products.DeleteOnSubmit(maio)
  northwind.SubmitChanges()

End Using

Conclusioni

Linq to SQL è uno strumento molto potente per scrivere i DAL di applicazioni basate sulla versione 3.5 del .NET Framework, per gestire le operazioni sulla base di dati e per avvalerci di funzionalità come la persistenza delle informazioni in memoria.

Scegliere un ORM per gestire l'accesso ai dati risulta ottimale per applicazioni Web e desktop, ma è importante gestire correttamente il ciclo di vita del DataContext (apertura e chiusura, entity attached e detached, etc.).

Il limite posto da Linq to SQL è il supporto unico per database SQL Server (2000 o 2005). Tale limite verrà contenuto con l'uscita del framework Linq to Entities (parte integrante di ADO.NET Entity Framework, attualmente alla versione Beta 3).

Link utili

Giuseppe Marchi è consulente informatico in ambito Microsoft .NET e dottore in Comunicazione Digitale; co-autore del libro "Pocket C#", editore Apogeo, collabora con community on-line di sviluppatori fornendo articoli e materiale. Dal 2006 è certificato Microsoft su ASP.NET 2.0 e Microsoft Certified Technology Specialist su Windows Sharepoint Services 3.0. Il suo sito Web personale è www.peppedotnet.it.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto