Logo UGIdotNET

Trasformare un DataReader in oggetti con LINQ to SQL

La classe DataContext offre, mediante il metodo Translate, la possibilità di trasformare un data reader in un insieme di oggetti, facilitando il porting di codice basato su ADO.NET verso l'adozione di un object model applicativo. Il seguente snippet mostra come, avendo a disposizione un data reader ottenuto selezionando le righe della tabella Customers dell'onnipresente database Northwind, sia possibile trasformalo in un insieme di istanze dell'omonima classe e mostrarle sulla console:

string cnStr = "...connection string...";
using (SqlConnection cn = new SqlConnection(cnStr))
using (SqlCommand cmd = new SqlCommand("SELECT * FROM Customers", cn))
{
    cn.Open();
    using (SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection))
    {
        DataContext context = new DataContext(cnStr);
        var result = context.Translate<Customer>(reader);
        foreach (Customer c in result)
        {
           Console.WriteLine(c.CompanyName);
        }
    }
}

Autore: Andrea Saltarello
Data: 03 febbraio 2008
Ultimo aggiornamento: 03 febbraio 2008
Categorie:  Data Access

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185