Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если схема DataSet известна во время разработки приложения, мы рекомендуем использовать типизированный DataSet при использовании LINQ to DataSet. Типизированный DataSet — это класс, производный от класса DataSet. Таким образом, он наследует все методы, события и свойства объекта DataSet. Кроме того, типизированный DataSet предоставляет строго типизированные методы, события и свойства. Это означает, что вы можете получить доступ к таблицам и столбцам по имени вместо использования методов на основе коллекции. Это делает запросы более простыми и более читаемыми. Дополнительные сведения см. в разделе "Типизированные наборы данных".
LINQ to DataSet также поддерживает запросы по типизированному набору DataSetданных. С типизированным DataSet вам не требуется использовать универсальный метод Field или метод SetField для доступа к данным столбца. Имена свойств доступны во время компиляции, так как сведения о типе включены в .DataSet LINQ to DataSet предоставляет доступ к значениям столбцов как корректный тип, поэтому ошибки несоответствия типов перехватываются при компиляции кода, вместо ошибок во время выполнения.
Прежде чем начать запросы к типизированному DataSet, необходимо создать класс с помощью конструктора наборов данных в Visual Studio. Дополнительные сведения см. в разделе "Создание и настройка наборов данных".
Пример
В следующем примере показан запрос по типизированному DataSetкоду:
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