Въведение в интегрираното запитване към езика

LINQ е съкратено като езикова интегрирана заявка. Тя е създадена в .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 документи и други бази данни. По същия начин SQL е структуриран език за заявки, който се използва за съхраняване и извличане на данни от база данни.

дефиниция

Интегрирана заявка за език предлага компактен значителен и разбираем синтаксис за операционни данни. Language Integrated Query е тактика и модел за програмиране на Microsoft, които ефективно включват способности за официални заявки в езиците за програмиране на Microsoft .NET. Той има нужда от наличието на конкретни езикови разширения. Действителната стойност на интегрираното запитване на езика идва от способността му да прилага една и съща заявка към DataSet, SQL база данни, масив от обекти в паметта, както и различни видове данни.

разбиране

Състои се от трипластова архитектура, в която горният слой има езикови разширения, а най-долният слой има източници на данни, които обикновено са обекти, осъществяващи IEnumerable или IQueryable генерични интерфейси. LINQ архитектурата е показана по-долу.

В C # LINQ се представя в пространството с имена. LINQ. Той дефинира различни видове методи и класовете поддържат LINQ заявки. В пространството от имена той се състои от

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

Основните възли в него са:

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

Как LINQ прави работата толкова лесна?

Когато работите с LINQ е толкова лесно, тъй като езиково интегрираното запитване осигурява интегриран към езика и обектно-базиран подход към заявките. Чрез използване на езиково интегрирано запитване можем да заявяваме XML, база данни и колекции. Той ще провери синтаксиса по време на компилиране. В езиковите интегрирани заявки кодовете за писане са по-бързи, поради това времето за разработка също намалява автоматично. За да осъзнаем защо трябва да използваме интегрирана заявка с език, нека да видим някои примери. Да предположим, че искате да намерите списъка с млади студенти от масив от обекти на Student.
По-рано от C # 2.0 трябваше да използваме цикъл „за всеки“ или „за“, за да преминем през колекцията, за да открием точен обект. Например, да напишете кода, за да изброите всички обекти на Student от масив от студенти, където 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++;
)
)
)
)

Използването на за цикъл е натоварващо, не може да се управлява през цялото време при намиране на множество числа резултати и също така не е четено. Така екипът преминава със следващата версия в 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();
)
)

По този начин, интегрираното запитване в езика прави кода допълнително компресиран и разбираем и може да се използва и за търсене на няколко източника на данни.

Каква е употребата на LINQ

  • Добре познат език
  • По-малко кодиране
  • Четлив код
  • идентичната техника за търсене на многобройни източници на данни
  • Време за компилиране на защита на заявките
  • Поддръжка на Intelli-Sense
  • Определяне на данни

Работа с LINQ

Езикови интегрирани заявки с активирани източници на данни. Видовете LINQ се споменават по-долу накратко.

  • LINQ към обекти
  • LINQ до XML (XLINQ)
  • LINQ към набор от данни
  • LINQ до SQL (DLINQ)
  • Линк до субектите

1. LINQ към обект

LINQ to Objects представя обработката на всякакви LINQ заявки, поддържащи IEnumerable за достъп до колекции от данни в паметта и обекти. променливата за връщане в Linq към обекти ще бъде от тип I безброй.

2. LINQ до XML (XLinq)

LINQ to XML е наличен в пространството на имена, наречено System.Xml.Linq. за да запитваме XML източници на данни, използваме LINQ до XML. Освен това Linq до XML прави най-доброто използване на .NET рамкови функции като проверка на компилиране на времето, отстраняване на грешки и силно въвеждане и т.н. когато зареждането на XML документи в паметта е лесно и по-лесно при промяна на документи и заявки.

3. LINQ към набор от данни

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

4. LINQ към SQL

LINQ to SQL също се нарича DLINQ и е част от интегрираното запитване в езика; чрез използването на LINQ изрази, Той позволява заявка за данни в базата данни на SQL Server.

5. LINQ към субектите

В LINQ към субектите с помощта на C # Това е лесен и прост начин да заявите субектите. заявка е израз, който се използва за получаване на данните от хранилището на данни. чрез използване на този DBContext в EF 6 или DBContext в рамката на EF основна структура на заявката на база данни се извършва.

Предимства

Интегрирана заявка за език предлага маса предимства; Някои от предимствата са дадени по-долу.

  • Помага при намирането на грешки по време на проектирането поради подчертаване на синтаксиса.
  • Помага по-точно при писането на заявки.
  • В езиковото интегрирано запитване времето за разработка ще бъде намалено, тъй като писането на код е много по-бързо и лесно в езиково интегрирана заявка.
  • Той е интегриран с език C #, поради което прави лесно отстраняване на грешки.
  • Той има своите йерархични характеристики поради това, че разглеждането на връзката между две таблици е по-лесно и отнема по-малко време за създаване на заявки, използвайки множество присъединявания.
  • Интегрираната заявка на езика поддържа по-лесна трансформация за преобразуване от един тип данни в друг тип данни, като трансформацията от SQL в XML данни.
  • С използването на LINQ разработчиците могат лесно да се поддържат и разбираеми, тъй като кодът му е по-четим.
  • В LINQ ще има единен синтаксис за заявка на няколко източника на данни.
  • По време на компилиране LINQ осигурява проверка на типа на обектите.
  • Поддържа оформянето на данни, можем да извлечем данни в различни форми.

Защо трябва да използваме LINQ?

Нека да видим защо е разработена езикова интегрирана заявка или защо използваме LINQ, има няколко точки, за да определим защо използваме езиково интегрирано запитване.

  • Когато сравнявате с SQL, LINQ е лесен за работа, език на високо ниво и добре ориентиран.
  • Основният принцип за изграждането на LINQ е, че по-рано на C # 3.0 за намиране на конкретен обект, който използвахме за всеки, за цикъл, делегати, като използва всички тези, имаше голям недостатък, защото за да разберем обект, който трябва да кодираме няколко реда от кодиране, което създава програма, по-малко четима, а също и по-отнемаща време. За преодоляване на тези проблеми беше въведен LINQ, тъй като езиково интегрираното запитване ще направи програмите / кодирането в много по-малък брой редове, а също така кодът ще стане по-четим и след като кодът е стандартизиран, можем да използваме същия код в няколко други програми.
  • По време на изпълнение, той помага да намерим грешките, така че да можем лесно да премахваме или коригираме грешките, а също така осигурява проверка на времето за компилиране.
  • По ефективен начин LINQ ни дава нова насока за решаване на подобни проблеми; а също така можем да използваме езиково интегрирана заявка със колекции и C # масив.
  • Поддържа в заявка израз, методи за разширение, променливи от неявен тип, ламбда изрази, обекти и колекции.
  • В езиково интегрираното запитване не е необходимо да се изучават различни видове езици, тъй като отделна заявка може да работи с всякакъв вид база данни. И също така поддържа всякакъв вид източник на данни като обекти, XML, Entities, SQL и така нататък.

Обхват на езикови интегрирани заявки

Той е създаден, за да зареди разликата между конвенционалния .NET, който представя обектно-ориентиран подход и силен подход за писане. Интегрираната заявка на езика въведе лесен за обучение модел за модифициране и запитване на данни, а също така поддържа източници на данни, които включват XML, структури в паметта на данни и релационни данни. Езикова интегрирана заявка, интегрирана с обектно-ориентиран и релационен подход. Това е силно набран израз. Силно въведените изрази гарантират, че стойността от правилния тип по време на компилиране и по време на изпълнение не позволява грешките да бъдат открити кодирани.

Защо се нуждаем от LINQ?

По-рано на LINQ е необходимо да се научат SQL, C # и няколко API, които се свързват, за да разработят цялостно приложение. Така че тези програмни езици и източници на данни са изправени пред някои проблеми и кодирането също затруднява. Нека видим пример за няколко техники, използвани от програмистите при заявяване на данни преди пристигането на езикова интегрирана заявка.

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

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
  2. Какво е Dropbox?
  3. Какво е Laravel?
  4. Какво представлява StringBuilder в C #