Sorgu yazılan DataSets

şeması DataSet uygulama tasarım zamanında biliniyorsa, LINQ to DataSet kullanırken yazılan DataSet bir kullanmanız önerilir. Yazılan DataSet , öğesinden türetilen bir DataSetsınıftır. Bu nedenle, bir DataSetöğesinin tüm yöntemlerini, olaylarını ve özelliklerini devralır. Ayrıca, türü belirlenmiş 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, yazılan DataSetbir üzerinde sorgulamayı da 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 içinde bulunduğundan DataSet, derleme zamanında özellik adları kullanılabilir. LINQ to DataSet doğru tür olarak sütun değerlerine erişim sağlar, böylece kod çalışma zamanında değil derlendiğinde tür uyuşmazlığı hataları yakalanabilir.

Yazılan DataSetbir sorguyu sorgulamaya başlayabilmeniz için önce Visual Studio'da DataSet Tasarım Aracı 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ılan DataSetbir 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 bkz.