Interrogation de DataSets typés
Si le schéma du DataSet est connu au moment du design de l'application, nous vous recommandons d'utiliser un DataSet typé lors de l'utilisation de LINQ to DataSet. Un DataSet typé est dérivé d'un DataSet. De ce fait, il hérite de l'ensemble des méthodes, événements et propriétés d'un DataSet. En outre, un DataSet typé fournit des méthodes, événements et propriétés fortement typés. Cela signifie que vous pouvez accéder à des tables et à des colonnes par leur nom au lieu d'utiliser les méthodes associées à des collections. Cela rend les requêtes plus simples et plus lisibles. Pour plus d'informations, voir DataSets typés (ADO.NET).
LINQ to DataSet prend également en charge l'interrogation sur un DataSet typé. Avec un DataSet typé, vous n'avez pas besoin d'utiliser la méthode générique Field ou la méthode SetField pour accéder aux données de colonne. Les noms de propriétés sont disponibles au moment de la compilation parce que les informations de type sont incluses dans le DataSet. LINQ to DataSet donne accès aux valeurs de colonne avec le type approprié, ce qui fait que les erreurs d'incompatibilité de types sont interceptées non pas à l'exécution, mais dès la compilation.
Avant de procéder à l'interrogation d'un DataSet typé, vous devez générer la classe à l'aide du Concepteur de DataSet dans Visual Studio 2008. Pour plus d'informations, voir Comment : créer un groupe de données typé.
Exemple
L'exemple suivant montre une requête sur un DataSet typé :
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
Voir aussi
Concepts
Interrogation de DataSets (LINQ to DataSet)