Aracılığıyla paylaş


Tiplenmiş veri kümelerini sorgula

DataSet'nın şeması uygulama tasarım aşamasında biliniyorsa, LINQ to DataSet kullanırken tipi belirtilmiş bir DataSet kullanmanız önerilir. Yazılan DataSet öğesinden türetilen bir DataSet sınıftır. Bu nedenle, bir DataSetöğesinin tüm yöntemlerini, olaylarını ve özelliklerini devralır. Ayrıca, güçlü bir şekilde türlenmiş DataSet, yöntemler, olaylar ve özellikler sağlar. Bu, koleksiyon tabanlı yöntemler kullanmak yerine tablolara ve sütunlara ada göre erişebileceğiniz anlamına gelir. Bu, sorguları daha basit ve daha okunabilir hale getirir. Daha fazla bilgi için bkz. Yazılan Veri Kümeleri.

LINQ to DataSet ayrıca yazılı DataSet üzerinde sorgulamayı destekler. türüyle DataSet, sütun verilerine erişmek için genel Field yöntemi veya SetField yöntemi kullanmanız gerekmez. Tür bilgileri DataSet içinde yer aldığından, derleme zamanında özellik adları kullanılabilir. LINQ to DataSet, sütun değerlerine doğru türde erişim sağlar, böylece tür uyuşmazlığı hataları kod çalışma zamanında değil, derleme sırasında yakalanır.

Yazılan DataSetbir sorguyu sorgulamaya başlayabilmeniz için önce Visual Studio'da DataSet Designer'ı kullanarak sınıfını oluşturmanız gerekir. Daha fazla bilgi için bkz. DataSet'leri oluşturma ve yapılandırma.

Örnek

Aşağıdaki örnek, yazılmış DataSet bir sorguyu gösterir.

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

Ayrıca bakınız