aspnet-c#

LINQ to SQL

2 Flares 2 Flares ×
FacebookTwitterGoogle+tumblrLinkedIn

LINQ to SQL risulta sicuramente l’implementazione più importante di LINQ. Ci permette di scrivere query di selezione, inserimento, modifica o cancellazione su dati prelevati da un database SQL Server, integrate direttamente nel codice C# o VB.NET. Tutto questo basandosi su un modello ad oggetti che rispecchia perfettamente (con una forma di mappatura uno a uno) le strutture presenti all’interno della base di dati.

Per essere ancora più chiari LINQ to SQL è un ORM (Object Relational Mapping) che permette di modellare la struttura del proprio database relazione attraverso classi .NET; tale ORM può essere poi interrogato attraverso la sintassi LINQ per permettere all’utente di eseguire query “CRUD” sulle informazioni presenti all’interno del database. Ad oggi, sono però solamente supportati database SQL Server.

Il lavoro che fa praticamente questo ORM è quello di tradurre le query integrate al linguaggio scelto (quindi query LINQ) in query SQL per l’esecuzione sulla base di dati e, in seguito, di tradurre il risultato della query in strutture dati tabulari costituenti delle istanze di oggetti vere e proprie. Una query LINQ di questo tipo quindi:

(C#)

ORMDataContext context = new ORMDataContext();
var customers = from c in context.Customers
where c.City == "London"
orderby c.ContactName
select c;

verrà poi eseguita all’interno del database secondo questa sintassi SQL:

SELECT [CustomerID],[CompanyName],[ContactName],[ContactTitle],[Address],
[City],[Region],[PostalCode],[Country],[Phone],[Fax]
FROM [Northwind].[dbo].[Customers]
WHERE [City] = 'London'

aumentando notevolmente la facilità di scrittura del codice per l’accesso ai dati relazionali all’interno delle proprie applicazioni (considerando che non ci si deve più preoccupare di creare una connessione al database, lanciare un comando, etc.).

Se invece, vogliamo inserire un nuovo record all’interno del database, non dobbiamo fare altro che creare l’informazione da inserire utilizzando le strutture definite dal mapping LINQ to SQL e sottomettere il nuovo dato all’oggetto che si occupa di gestire le comunicazioni tra l’applicazione e il database.

(C#)

ORMDataContext context = new ORMDataContext();
Customer c = new Customer();
c.CustomerID = "ICO";
c.City = "Pesaro";
c.ContactName = "Ico Arena";
c.Address = "Via col vento 1";
c.CompanyName = "icoarena.com";
context.Customers.InsertOnSubmit(c);
context.SubmitChanges();

Gli esempi di aggiornamento del database e di cancellazione di record sono stati omessi, ma comunque presenti all’interno del codice da scaricare; sicuramente non vi risulterà difficile immaginare che anche in questi ultimi due casi, il modo in cui vengono effettuate operazioni sulla base di dati tramite LINQ to SQL sarà sempre di una semplicità disarmante.

Le potenzialità di LINQ to SQL risultano essere veramente tante e soprattutto, ormai, risulta la scelta ottimale basarsi su di un ORM per gestire l’accesso ai dati e la loro persistenza, all’interno delle proprie applicazioni.

FacebookTwitterGoogle+tumblrLinkedIn

Lascia un Commento

L'indirizzo email non verrà pubblicato.

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

2 Flares Twitter 0 Facebook 0 Google+ 0 Pin It Share 0 LinkedIn 2 2 Flares ×