Il controllo LinqDataSource di ASP.NET 3.5

di: Giuseppe Marchi     22 Ottobre 2008

È uno dei tre nuovi controlli aggiunti alla versione 3.5 dell'engine di ASP.NET (assieme a ListView e DataPage) ed è il nuovo arrivato nella famiglia dei controlli di tipo Data-Source. In particolare, questo controllo permette agli sviluppatori Web, di sfruttare con sforzo minimo tutti vantaggi offerti da LINQ.

Possiamo specificare una query di selezione utilizzando oggetti in memoria, svincolati dal classico SQL. L'utilizzo di questo controllo va a braccetto con l'uso di LINQ to SQL o del nuovo Entity Framework. Entrambi permettono la mappatura della base di dati su classi .NET.

Il funzionamento del controllo si basa su una particolare classe, detta classe di "contesto", o più comunemente DataContext: LinqDataSource si preoccupa di creare le istanze di DataContext per utilizzarle come fonte di dati per le proprie operazioni.

Quindi se utilizziamo le classi generate da Visual Studio a fronte dell'utilizzo di LINQ to SQL o dell'Entity Framework, sicuramente troviamo la classe DataContext già presente nel progetto. In questo caso possiamo specificarne il tipo all'interno di un'istanza del controllo LinqDataSource.

Vedremo però che l'utilizzo di LinqDataSource non è limitato a lavorare solamente con classi LINQ to SQL, ma con tutte le classi .NET che espongono collezioni di oggetti (o array) come proprietà pubbliche.

Possiamo considerare LinqDataSource come la fusione tra il controllo SqlDataSource e il controllo ObjectDataSource, in quanto come il primo permette di specificare la query di selezione direttamente nel markup della pagina, senza però fare alcun riferimento alla connessione con il DB; la caratteristica comune con l'ObjectDataSource è, invece, quella di permettere la selezione di informazioni da un livello di classi che si interpone tra la User Interface e il livello di accesso ai dati, con il vantaggio di non dover modificare l'implementazione dei metodi di selezione a fronte di un cambiamento anche minimo della query.

L'utilizzo del controllo si basa principalmente su queste quattro proprietà:

  • ContextTypeName - indica il tipo che verrà istanziato in automatico ed utilizzato come fonte di dati per le nostre query LINQ
  • TableName - indica il nome della tabella a cui collegarsi e da cui prelevare eventualmente informazioni
  • Select - permette di indicare le colonne (o proprietà) interessate dalla query
  • Where - permette applicare filtri su colonne o proprietà relative al tipo specificato nella proprietà TableName

Risulta abbastanza intuitivo assegnare alla proprietà ContextTypeName la classe DataContext generata dalla mappatura LINQ to SQL, ma possiamo anche astrarci da questa concezione e pensare tale proprietà come la classe che espone i nostri dati, qualsiasi essi siano.

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