Accedere ai dati usando LinqDataSource

di Daniele Bochicchio, in ASP.NET 3.5, ListView, DataBinding,

Tra le novità supportate da ASP.NET 3.5, LINQ riveste un ruolo fondamentale, soprattutto nella sua variante LINQ to SQL, che assicura una rapidità di implementazione molto ma molto marcata.

Quando non si ha bisogno di sfruttare un'architettura più complessa, perchè ad esempio si stanno costruendo semplici maschere di dati entry, senza necessità di logica aggiuntiva, il nuovo control LinqDataSource può risultare molto comodo.

Per prima cosa è necessario provvedere alla creazione del mapping tra oggetti e database, cosa possibile usando il designer di Visual Studio o con il tool da riga di comando sqlmetal.exe.

Successivamente, è sufficiente aggiungere un controllo alla pagina, come ad esempio una GridView o il nuovo ListView, per poter selezionare poi come sorgente dati LINQ, procede con l'indicazione la classe contenente il DataContext ed avere lo stesso identico risultato che si ha con un altro tipo di controllo di tipo Data Source, ma con la differenza che il LinqDataSource ben si presta a filtrare e manipolare i dati, in maniera ottimizzata al massimo, ad esempio recuperando solo i dati effettivamente necessari in caso di paginazione, senza necessità per lo sviluppatore di scrivere codice aggiuntivo.

 <asp:GridView ID="List" runat="server" AutoGenerateColumns="False"
    DataSourceID="LinqDataSource1" >
  <Columns>
     <asp:BoundField DataField="au_id" HeaderText="au_id" ReadOnly="True"
      SortExpression="au_id"></asp:BoundField>
     <asp:BoundField DataField="au_lname" HeaderText="au_lname" ReadOnly="True"
      SortExpression="au_lname"></asp:BoundField>
     <asp:BoundField DataField="au_fname" HeaderText="au_fname" ReadOnly="True"
      SortExpression="au_fname"></asp:BoundField>
     <asp:BoundField DataField="phone" HeaderText="phone" ReadOnly="True"
      SortExpression="phone"></asp:BoundField>
  </Columns>
</asp:GridView>
 <asp:LinqDataSource ID="LinqDataSource1" runat="server"
   ContextTypeName="PubsDataContextDataContext"
  Select="new (au_id, au_lname, au_fname, phone)" TableName="Authors">
</asp:LinqDataSource>

Agendo con il designer di VS 2008 è possibile arrivare alla definizione di tutte le funzionalità supportate.

Per approfondimenti su LINQ, si veda:
https://www.linqitalia.com/

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi