Esecuzione di query su DataSet tipizzati
Se si conosce lo schema di DataSet in fase di progettazione dell'applicazione, è consigliabile utilizzare DataSet tipizzati con LINQ to DataSet. Un oggetto DataSet tipizzato è una classe che deriva da DataSet. In quanto tale, tale oggetto eredita tutti i metodi, gli eventi e le proprietà di un DataSet. Un DataSet tipizzato fornisce inoltre metodi, eventi e proprietà fortemente tipizzati. È quindi possibile accedere a tabelle e colonne in base al nome, anziché utilizzare metodi basati su raccolta. Le query risultano quindi più semplici e più leggibili. Per ulteriori informazioni, vedere DataSet tipizzati (ADO.NET).
LINQ to DataSetsupporta inoltre l'esecuzione di query su DataSet tipizzati. Con un oggetto DataSet tipizzato non è necessario utilizzare il metodo Field generico o il metodo SetField per accedere ai dati della colonna. I nomi di proprietà sono disponibili in fase di compilazione perché le informazioni sul tipo sono incluse in DataSet. LINQ to DataSet fornisce accesso ai valori della colonna come tipo corretto, pertanto gli errori di mancata corrispondenza dei tipi vengono intercettati durante la compilazione del codice anziché in fase di esecuzione.
Prima di iniziare a eseguire query su un oggetto DataSet tipizzato, è necessario generare la classe utilizzando Progettazione DataSet in Visual Studio 2008. Per ulteriori informazioni, vedere Procedura: creare un dataset tipizzato.
Esempio
Nell'esempio seguente viene illustrata una query su un oggetto DataSet tipizzato.
var query = from o in orders
where o.OnlineOrderFlag == true
select new { o.SalesOrderID,
o.OrderDate,
o.SalesOrderNumber };
foreach(var order in query)
{
Console.WriteLine("{0}\t{1:d}\t{2}",
order.SalesOrderID,
order.OrderDate,
order.SalesOrderNumber);
}
Dim orders = ds.Tables("SalesOrderHeader")
Dim query = _
From o In orders _
Where o.OnlineOrderFlag = True _
Select New {SalesOrderID := o.SalesOrderID, _
OrderDate := o.OrderDate, _
SalesOrderNumber := o.SalesOrderNumber}
For Each Dim onlineOrder In query
Console.WriteLine("{0}\t{1:d}\t{2}", _
onlineOrder.SalesOrderID, _
onlineOrder.OrderDate, _
onlineOrder.SalesOrderNumber)
Next
Vedere anche
Concetti
Esecuzione di query su DataSet (LINQ to DataSet)