Linq to SQL

di: Giuseppe Marchi     12 Marzo 2008

Linq to SQL è sicuramente la più importante delle implementazioni di Linq inserite nella nuova versione del .NET Framework; rappresenta uno strumento completo e semplice, per lavorare con database SQL Server. Possiamo operare sulla base di dati utilizzando gli oggetti del database sotto forma di classi.

Linq to SQL è un vero e proprio ORM, che permette quindi di mappare gli oggetti di un database SQL Server in classi .NET, facilitando anche la costruzione del domain model di applicazioni Web e client.

Linq to SQL si rivela quindi lo strumento ideale per la creazione dell'architettura di base di applicazioni .NET basate sulla versione 3.5 del .NET Framework. Questo perché esso si occupa sia del modello ad oggetti dell'applicazione, ovvero dell'interscambio di dati tra i livelli concettuali in cui sono solitamente divise le applicazioni, e dei meccanismi di persistenza delle informazioni.

A supporto di questa nuova tecnologia, Visual Studio 2008 mette in campo l'Object-Relational Designer, che consente di effettuare il mapping tra applicazione e database, tramite semplici operazioni visuali come il drag & drop. Gli schemi realizzati sono poi memorizzati con estensione .dbml.

La struttura di Linq to SQL

Come abbiamo già accennato Linq to SQL mette in campo due tipologie principali di funzionalità:

  • Ciò che permette la definizione di un modello ad oggetti basato sul mapping delle tabelle di un database SQL Server
  • Un vero e proprio runtime per la gestione dei meccanismi di aggiornamento, persistenza, gestione delle performance e della cache

Il mapping offerto da Linq to SQL, presenta delle relazioni 1:1 tra tabelle della base di dati e classi che andranno poi a far parte del domain model dell'applicazione. In realtà il mapping "si avvicina molto" al pattern 1 a 1, poiché possiamo arricchirlo con associazioni, collezioni e meccanismi di ereditarietà basati sulla strategia a Single Table Hierarchy.

Le classi generate da questa operazione di mapping, sono le cosiddette entity, che possono essere descritte appunto come entità logiche che rappresentano le informazioni che dovranno poi essere gestite dai vari livelli concettuali in cui sono divise le applicazioni multilivello.

Queste entità sono gestite dal runtime di Linq to SQL, che invece si occupa della connessione fisica tra applicazione e base di dati. Il che ci permette di effettuare operazioni sul database, secondo il modello di programmazione ad oggetti, senza dover specificare alcuna riga di codice T-SQL, in quanto è proprio il runtime stesso che provvede alla conversione delle nostre operazioni in costrutti sintattici propri del linguaggio con cui solitamente accediamo alle informazioni poste nella base di dati.

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

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto