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);
}
}
}