Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPORY_BD.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.64 Mб
Скачать

Общие сведения о технологии linq

Альтернативной стратегией доступа к данным является технология LINQ.

LINQ (Language-Integrated Query) позволяет разработчикам формировать в программном коде запросы, основанные на наборах, без использования дополнительного языка запросов. Можно писать запросы LINQ к различным перечислимым источникам данных (источникам данных, которые реализуют интерфейс IEnumerable), таким как хранимые в памяти структуры данных, XML-документы, базы данных SQL и объекты DataSet.

Несмотря на то, что эти перечислимые источники данных реализованы различными способами, во всех них используется одинаковый синтаксис и языковые конструкции. Из-за того что запросы могут быть сформированы на языке программирования, нет необходимости использовать другой язык запросов, внедренный в виде строковых литералов, которые не могут быть проверены компилятором.

Встраивание запросов в язык программирования позволяет программистам, использующим среду Visual Studio, быть более продуктивными, предоставляя им проверку синтаксиса и соответствия типов во время компиляции и возможности технологии IntelliSense. Эти функции уменьшают затраты на отладку запросов и поиск ошибок.

Поддерживаются три технологии ADO.NET LINQ (Language-Integrated Query): LINQ to DataSet, LINQ to SQL и LINQ to Entities.

Технология LINQ to DataSet обеспечивает расширенные возможности оптимизированных запросов к DataSet;

технология LINQ to SQL поддерживает непосредственные запросы схем базы данных SQL Server;

технология LINQ to Entities поддерживает запросы, в которых используется EDM-модель (Entity Data Model).

LINQ (Language-Integrated Query) определяет набор стандартных универсальных операторов запросов, которые можно использовать в языках программирования платформы .NET Framework 3.0. Эти стандартные операторы запросов позволяют проецировать, фильтровать и просматривать расположенные в памяти наборы или таблицы в базе данных. Обратите внимание, что запросы LINQ выражены на языке программирования, а не в виде строковых литералов, внедренных в код приложения. Это значительное отличие от способа создания большинства приложений в ранних версиях платформы .NET Framework.

Создание запросов на языке программирования дает несколько ключевых преимуществ. Это упрощает создание запросов, исключая необходимость использования раздельных языков запросов. При использовании среды Visual Studio 2008 IDE LINQ также позволяет использовать преимущества проверки во время компиляции, статической типизации и технологии IntelliSense.

Технология LINQ интегрирована в различные аспекты доступа к данным в платформе .NET Framework, включая модель автономного программирования DataSet и существующие схемы баз данных SQL Server. В этом разделе описывается LINQ to ADO.NET, представляющая реализацию ADO.NET для LINQ.

Следующая схема дает общие сведения о том, как технология LINQ to ADO.NET связана с высокоуровневыми языками программирования, другими технологиями LINQ и источниками данных с доступным LINQ.

Традиционно запросы к данным выражаются в виде простых строк без проверки типов при компиляции или поддержки IntelliSense. Кроме того, разработчику приходится изучать различные языки запросов для каждого из типов источников данных: баз данных SQL, XML-документов, различных веб-служб и т. д. LINQ делает запросы очень удобной конструкцией языков C# и Visual Basic. Разработчики создают запросы к строго типизированным коллекциям объектов с помощью зарезервированных слов языка и знакомых операторов. На следующем рисунке 29 показан частично выполненный запрос LINQ к базе данных SQL Server в C# с полной проверкой типов и поддержкой IntelliSense. В Visual Studio можно писать запросы LINQ на языках Visual Basic и C# для обращения к базам данных SQL Server, XML-документам, наборам данных ADO.NET и к любым коллекциям объектов, поддерживающим интерфейс IEnumerable или универсальный интерфейс IEnumerable(Of T). Также планируется поддержка LINQ для ADO.NET Entity Framework, а сторонние разработчики пишут поставщики LINQ для многих веб-служб и других реализаций баз данных. Запросы LINQ можно использовать в новых проектах или параллельно с запросами, не относящимися к LINQ, в существующих проектах. Единственное требование: проект должен разрабатываться для платформы .NET Framework версии 3.5 или более поздней.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]