Введение в языковой интегрированный запрос

LINQ сокращенно называется Language Integrated Query. Он установлен в .NET 3.5 и Visual Studio 2008. Основная концепция LINQ заключается в предоставлении средствам .NET (таким как C #, VB.NET и т. Д.) Возможность создавать запросы для получения данных из источника данных. Для извлечения данных из различных форматов и источников в C # и VB.NET используется единый синтаксис запросов. Он устраняет различия между базами данных и языками программирования, поскольку он интегрирован с C # / VB, а также обеспечивает отдельный интерфейс запросов для различных типов источников данных. Это позволяет использовать объектно-ориентированный подход к набору результатов; результирующие запросы возвращают результаты в виде объектов.

Разница между SQL и LINQ заключается в том, что (Language Integrated Query) представляет собой синтаксис структурированных запросов, который встроен в VB.NET и C # для извлечения данных из различных типов источников данных, включая MS SQL Server, ADO.Net DataSet, веб-сервис. Коллекции, XML Docs и другие базы данных. Точно так же SQL - это язык структурированных запросов, который используется для хранения и извлечения данных из базы данных.

Определение

Language Integrated Query предлагает компактный значимый и понятный синтаксис для рабочих данных. Language Integrated Query - это тактика и модель программирования Microsoft, которая эффективно включает формальные возможности запросов в языки программирования Microsoft .NET. Необходимо наличие определенных языковых расширений. Фактическая ценность Language Integrated Query заключается в его способности применять один и тот же запрос к DataSet, базе данных SQL, массиву объектов в памяти, а также к различным типам данных.

понимание

Он состоит из трехуровневой архитектуры, в которой верхний уровень имеет языковые расширения, а самый нижний уровень имеет источники данных, которые в общем являются объектами, реализующими универсальные интерфейсы IEnumerable или IQueryable. Архитектура LINQ показана ниже.

В C # LINQ представлен в пространстве имен System. Linq. Он определяет различные типы методов и классов, поддерживающих запросы LINQ. В пространстве имен он состоит из

  • Перечислимый класс содержит стандартные операторы запросов, которые работают с объектом и выполняют IEnumerable.
  • Класс Queryable содержит стандартные операторы запросов, функции которых над объектом выполняют IQueryable.

Основные сборки в нем:

  • Использование системы. Linq: обеспечьте классы и интерфейс для поддержки запросов LINQ
  • Использование System.Collections.Generic: (LINQ to Objects) Позволяет пользователю создавать строго типизированные коллекции, обеспечивающие безопасность и производительность типов.
  • Использование System.Data.Linq: (LINQ to SQL) Предложение с функциональностью, позволяющей использовать реляционные базы данных.
  • Использование System.XML.Linq: (LINQ to XML) Представляет функциональные возможности для права использовать документы XML с использованием LINQ.
  • Использование System.Data.Linq.Mapping: назначить класс как объект, связанный с базой данных.

Как LINQ делает работу такой простой?

Работать с LINQ так просто, потому что языковой запрос обеспечивает языковой и объектный подход к запросу. Используя языковой интегрированный запрос, мы можем запрашивать XML, базу данных, а также коллекции. Он проверит синтаксис во время компиляции. В Language Integrated Query написание кодов происходит быстрее, поскольку время разработки также сокращается автоматически. Чтобы понять, почему мы должны использовать интегрированный с языком запрос, давайте рассмотрим несколько примеров. Предположим, вы хотите найти список молодых студентов из массива объектов Student.
Ранее, чем C # 2.0, нам приходилось использовать цикл «для каждого» или «для», чтобы просмотреть коллекцию, чтобы обнаружить точный объект. Например, написать код для перечисления всех объектов учеников из массива учеников, где SAge находится между 12 и 20.

Пример программы для использования для цикла

class StudentDetails
(
public int SID ( get; set; )
public String SName ( get; set; )
public int SAge ( get; set; )
)
class Program
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
StudentDetails () students = new StudentDetails (10);
int i = 0;
foreach (StudentDetails std in sArray)
(
if (std.SAge > 12 && std.SAge < 20)
(
students(i) = std;
i++;
)
)
)
)

Использование цикла for является обременительным, неуправляемым все время при нахождении нескольких чисел результатов, а также не читаемым. Таким образом, команда переходит к следующей версии C # 3.0, которая была представлена, используя этот подход, чтобы решить такие типы проблем, потому что интегрированный с языком запрос является строительным блоком элементов запроса для нескольких видов сбора, а также он получает результаты с помощью одного оператора.,
Давайте посмотрим на приведенный ниже пример, объясняющий, что запрос LINQ лямбда-выражения помогает найти конкретного учащегося из коллекции списков.

Пример программы

class ProgramLINQ
(
static void Main(string() args)
(
StudentDetails () sArray = (
new StudentDetails () ( SID = 1, SName = "Rio", SAge = 18 ),
new StudentDetails () ( SID = 2, SName = "Rock", SAge = 21 ),
new StudentDetails () ( SID = 3, SName = "Smith", SAge = 25 ),
new StudentDetails () ( SID = 4, SName = "Jack", SAge = 20 ),
new StudentDetails () ( SID = 5, SName = "Remo", SAge = 31 ),
new StudentDetails () ( SID = 6, SName = "Andre", SAge = 17 ),
new StudentDetails () ( SID = 7, SName = "Don", SAge = 19 ),
);
// to find young students in the list
StudentDetails () tStudents = sArray.Where(s => s. SAge > 12 && s. SAge < 20).ToArray();
// to find first student whose name is Smith
StudentDetails f_Sname = sArray.Where(s => s. SName == "Smith ").FirstOrDefault();
// to find student whose StudentID is 5
StudentDetails f_SID = sArray.Where(s => s. SID == 5).FirstOrDefault();
)
)

Таким образом, Language Integrated Query делает код дополнительно сжатым и понятным, и его также можно использовать для запроса нескольких источников данных.

Что такое использование LINQ

  • Хорошо известный язык
  • Меньше кодирования
  • Читаемый код
  • Идентичная Техника Запроса Многочисленных Источников Данных
  • Защита времени компиляции запросов
  • Техническое обслуживание Intelli-Sense
  • Определение данных

Работа с LINQ

Языковые интегрированные источники данных с поддержкой запросов. Типы LINQ упоминаются ниже вкратце.

  • LINQ to Objects
  • LINQ to XML (XLINQ)
  • LINQ to Data Set
  • LINQ to SQL (DLINQ)
  • Linq to Entities

1. LINQ to Object

LINQ to Objects представляет обработку любого запроса LINQ, поддерживающего IEnumerable для доступа к коллекциям данных и объектам в памяти. Возвращаемая переменная в Linq для объектов будет иметь тип IEnumerable.

2. LINQ to XML (XLinq)

LINQ to XML доступен в пространстве имен System.Xml.Linq. для запроса источников данных XML, мы используем LINQ to XML. Кроме того, в Linq to XML наилучшим образом используются функциональные возможности платформы .NET, такие как проверка во время компиляции, отладка, строгая типизация и т. Д. при загрузке XML-документов в память проще и проще при модификации документов и запросах.

3. LINQ to Dataset

LINQ to DataSet, который поддерживает запросы, используя таблицы данных ADO.NET и наборы данных. когда данные объединены из нескольких источников данных, мы будем использовать LINQ to Dataset для запросов.

4. LINQ to SQL

LINQ to SQL также называется DLINQ и является частью встроенного в язык запроса; с помощью выражений LINQ позволяет запрашивать данные в базе данных SQL Server.

5. LINQ to Entities

В LINQ to Entities с использованием C # Это простой и простой способ запроса сущностей. Запрос - это выражение, которое используется для получения данных из хранилища данных. с помощью этого DBContext в EF 6 или DBContext в инфраструктуре сущностей EF Core выполняется запрос базы данных.

преимущества

Language Integrated Query предлагает массу преимуществ; Некоторые из преимуществ приведены ниже.

  • Это помогает обнаруживать ошибки во время разработки из-за подсветки синтаксиса.
  • Это помогает в написании запроса более точно.
  • В Language Integrated Query время разработки будет сокращено, потому что написание кода намного быстрее и проще в Language Integrated Query.
  • Он интегрирован с языком C #, благодаря чему упрощает отладку.
  • Он имеет свои иерархические особенности благодаря тому, что просмотр взаимосвязей между двумя таблицами проще, и для создания запросов с использованием нескольких объединений требуется меньше времени.
  • Language Integrated Query поддерживает более простое преобразование для преобразования из одного типа данных в другой тип данных, например преобразование из данных SQL в XML.
  • С помощью LINQ разработчики могут легко обслуживаться и быть понятными, поскольку его код более читабелен.
  • В LINQ будет единый синтаксис для запросов к нескольким источникам данных.
  • Во время компиляции LINQ обеспечивает проверку типов объектов.
  • Он поддерживает формирование данных, мы можем получать данные в различных формах.

Почему мы должны использовать LINQ?

Давайте посмотрим, почему разработан Language Integrated Query или почему мы используем LINQ, есть несколько моментов, чтобы определить, почему мы используем Language Integrated Query.

  • По сравнению с SQL LINQ прост в работе, является языком высокого уровня и хорошо ориентирован.
  • Основным принципом построения LINQ является то, что ранее в C # 3.0 для нахождения конкретного объекта, который мы использовали для каждого делегата цикла, используя все это, существенным недостатком было то, что для поиска объекта нам нужно кодировать несколько строк: кодирование, которое делает программу менее читаемой, а также более трудоемкой. Чтобы преодолеть эти проблемы, был введен LINQ, потому что встроенный в язык запрос будет выполнять программы / кодирование в очень небольшом количестве строк, а также код делает его более читабельным, и как только код стандартизирован, мы можем использовать тот же код в нескольких других программах.
  • Во время выполнения он помогает находить ошибки, чтобы мы могли легко удалять или исправлять ошибки, а также обеспечивает проверку во время компиляции.
  • Эффективно LINQ дает нам новое направление для решения таких проблем; а также мы можем использовать языковой интегрированный запрос с коллекциями и массивом C #.
  • Он поддерживается в выражении запроса, методах расширения, неявных переменных типа, лямбда-выражениях, объектах и ​​коллекциях.
  • В Language Integrated Query нет необходимости изучать различные типы языков, поскольку отдельный запрос может работать с любой базой данных. А также он поддерживает любые источники данных, такие как объекты, XML, Entities, SQL и так далее.

Область применения встроенного языка

Он создан для того, чтобы заполнить разрыв между обычным .NET, который представляет объектно-ориентированный подход и подход строгой типизации. Language Integrated Query представил легкую в освоении модель для изменения и запроса данных, а также поддерживает источники данных, которые включают XML, структуры данных в памяти и реляционные данные. Language Integrated Query интегрирован с объектно-ориентированным и реляционным подходом. Это строго типизированное выражение. Строго типизированные выражения гарантируют, что значение правильного типа во время компиляции и во время выполнения предотвращает обнаружение ошибок в коде.

Зачем нам нужен LINQ?

В более ранней версии LINQ необходимо изучить SQL, C # и несколько API, которые объединяются для разработки целого приложения. Так что эти языки программирования и источники данных сталкиваются с некоторыми проблемами, а кодирование также усложняет задачу. Давайте посмотрим, как несколько методов использовались программистами при запросе данных до появления Language Integrated Query.

Пример программы

SqlConnection conn= new SqlConnection(connString);
SqlConnection.Open();
System.Data.SqlClient.SqlCommand cmd=ne SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Select * from Employee";
return cmd.ExecuteReader (CommandBehavior.CloseConnection) ;
By using LINQ the above same query can be return in simple easy and readable form whereas the consuming time also very less.
Northwind db_ = new Northwind(@"C:\Data\Northwind.mdf");
var query_result = from e in db.Employee select e;

Как эта технология поможет вам в карьерном росте?

Это поисковая система, которая помогает оптимизировать рабочие процессы данных. Это поможет в карьерном росте хорошо ориентированным способом. Он поддерживает всю команду, с которой легко работать, и сокращает объем переделок, а также позволяет выполнять проект в запланированные сроки и в рамках предполагаемого бюджета

Вывод

Вы хорошо ознакомились с тем, как меняется LINQ, и становитесь лучше в ADO.NET. Кроме того, это помогает в экономии времени. В конечном итоге вы узнали о том, как интегрированные в язык запросы могут использоваться для нескольких типов источников данных. В этой статье мы узнали о рабочем процессе языкового интегрированного запроса и о том, как его использовать. Я надеюсь, что эта статья помогла бы вам.

Рекомендуемые статьи

Это руководство к Что такое LINQ? Здесь мы обсудим определение, преимущества и использование, а также пример программы и области применения. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. MongoDB GUI Инструменты
  2. Что такое Dropbox?
  3. Что такое Ларавел?
  4. Что такое StringBuilder в C #