Il controllo LinqDataSource di ASP.NET 3.5

di: Giuseppe Marchi     22 Ottobre 2008

Aggiornamenti, inserimenti e cancellazioni

Come per i controlli SqlDataSource e ObjectDataSource, anche LinqDataSource, se collegato ad una classe DataContext generata da un modello di mapping LINQ to SQL, ha la possibilità di abilitare le tipiche operazioni di inserimento, modifica e cancellazione di dati da una tabella.

Per farlo, basta impostare a true le proprietà:

  • EnableInsert
  • EnableUpdate
  • EnableDelete

e, chiaramente, legare il data-source ad un controllo di visualizzazione che gestisca queste tre operazioni (come per esempio una DetailsView).

<asp:LinqDataSource ID="linqDSCustomers" runat="server" 
                    ContextTypeName="NorthwindDataContext"
                    TableName="Customers" OrderBy="ContactName" />

<asp:DropDownList ID="ddlCustomers" runat="server"
                  DataSourceID="linqDSCustomers" DataValueField="CustomerID"
                  DataTextField="ContactName" AutoPostBack="true" /><br />

<asp:LinqDataSource ID="linqDSUpdate" runat="server" 
                    ContextTypeName="NorthwindDataContext"
                    TableName="Customers"
                    Where="CustomerID = @CustomerID"
                    EnableUpdate="True" EnableDelete="true" EnableInsert="true">
  <WhereParameters>
    <asp:ControlParameter ControlID="ddlCustomers" Name="CustomerID"
                          PropertyName="SelectedValue" />
  </WhereParameters>
</asp:LinqDataSource>

<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="linqDSUpdate" 
                 DataKeyNames="CustomerID" AutoGenerateEditButton="True"
                 AutoGenerateDeleteButton="true" AutoGenerateInsertButton="true" />

Anche in questo abbiamo raggiungere il nostro scopo scrivere code-behind: è il controllo LinqDataSource a preoccuparsi di generare le query di update, insert e delete in LINQ.

Infine, come già evidenziato nel corso dell'articolo, c'è un elenco di parametri diponibili per le varie clausole del controllo (select, where, orderby, groupby, etc.). Questi parametri rappresentano le stesse funzioni degli omologhi per i controlli SqlDataSource e ObjectDataSource.

Conclusioni

Avere padronanza di questo tipo di controllo può risultare utile, in quanto è possibile creare semplici applicazioni di interazione con una base di dati, senza scrivere pagine e pagine di codice .NET. Inoltre, l'utilizzo di questo controllo, implica la presenza di un modello ad oggetti ben strutturato, anche se inserire la logica di selezione direttamente all'interno della parte dichiarativa di una pagina ASP.NET non è proprio una "best-practice".

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 contiene ulteriori informazioni ed esempi di codice.

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