Condividi tramite


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)

Query tra tabelle (LINQ to DataSet)

Query su una singola tabella (LINQ to DataSet)