Introducere în interogarea limbajului

LINQ este prescurtată ca interogare de limbă integrată. Este stabilit în .NET 3.5 și Visual Studio 2008, principalul concept al LINQ este de a oferi facilitatea limbajelor .NET (cum ar fi C #, VB.NET, etc.) pentru a construi interogări pentru a recupera date de la sursa de date. Pentru a prelua datele din diverse formate și surse din C # și VB.NET, sintaxa de interogare uniformă a acesteia. Acesta elimină variația dintre bazele de date și limbajele de programare, deoarece s-a integrat cu C # / VB și, de asemenea, a furnizat interfața de interogare distinctă pentru diferite tipuri de surse de date. Aceasta permite utilizarea unei abordări orientate pe obiect pe setul de rezultate; interogările rezultate returnează rezultatele ca obiecte.

Diferența dintre SQL și LINQ este aceea în care (query Language Integrated) este sintaxa de interogare structurată care a încorporat VB.NET și C # pentru a prelua datele din diferite tipuri de surse de date, care include MS SQL Server, ADO.Net DataSet, serviciu web, Colecții, Documente XML și alte baze de date. În același mod, SQL este un limbaj de interogare structurat, care este utilizat pentru a stoca și recupera datele dintr-o bază de date.

Definiție

Language Integrated Query propune o sintaxă compactă semnificativă și inteligibilă pentru datele de operare. Language Integrated Query este o tactică și model de programare Microsoft care include eficient abilitățile formale de interogare în limbajele de programare Microsoft .NET. Are nevoie de prezența anumitor extensii de limbă. Valoarea reală a interogării Language Integrated vine din capacitatea sa de a aplica aceeași interogare într-un DataSet, Baza de date SQL, o serie de obiecte în memorie și, de asemenea, diverse tipuri de date.

Înţelegere

Este format dintr-o arhitectură cu trei straturi în care stratul superior are extensii de limbaj, iar stratul cel mai de jos are surse de date care sunt în general obiecte care implementează interfețe generice IEnumerable sau IQueryable. Arhitectura LINQ este prezentată mai jos.

În C #, LINQ se prezintă în Sistemul de spații de nume. LINQ. Definește diferite tipuri de metode și clasele acceptă interogările LINQ. În spațiul de nume, este format din

  • O clasă enumerabilă conține operatori de interogare standard care funcționează pe obiectul execută IEnumerable.
  • Clasa interogabilă conține operatori de interogare standard care funcționează pe obiect execută IQueryable.

Asamblările de bază din acesta sunt:

  • Utilizarea sistemului. Linq: Înzestrați cu clase și interfață pentru a menține interogările LINQ
  • Utilizarea System.Collections.Generic: (LINQ la obiecte) Permiteți utilizatorului să construiască colecții puternic tipate care să ofere siguranță și performanță de tip
  • Utilizarea System.Data.Linq: (LINQ la SQL) Oferiți funcționalitatea corectă pentru a utiliza baze de date relaționale
  • Utilizarea System.XML.Linq: (LINQ la XML) Prezintă funcționalitatea pentru dreptul de utilizare a documentelor XML folosind LINQ.
  • Utilizarea System.Data.Linq.Mapping: Atribuit o clasă ca o entitate conectată cu o bază de date.

Cum face LINQ să funcționeze atât de ușor?

Atunci când lucrați cu LINQ este atât de ușor, deoarece interogarea de limbă integrată oferă o abordare de interogare bazată pe limbă și bazată pe obiecte. Folosind interogarea cu limbaj integrat, putem interoga XML, baza de date și, de asemenea, colecții. Va verifica sintaxa în timpul compilării. În limbajul Integrated Query, scrierea codurilor este mai rapidă datorită faptului că timpul de dezvoltare se reduce automat și. Pentru a realiza de ce ar trebui să folosim interogarea de limbă integrată, să vedem câteva exemple. Să presupunem că doriți să localizați lista studenților tineri dintr-o serie de obiecte Student.
Mai devreme decât C # 2.0, a trebuit să folosim o buclă „pentru fiecare” sau „pentru” pentru a trece colecția pentru a descoperi un obiect exact. De exemplu, să scrieți codul pentru a enumera toate obiectele Student dintr-un tablou de Studenți unde SAge este între 12 și 20.

Program de probă pentru utilizare pentru buclă

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++;
)
)
)
)

Utilizarea pentru buclă este greoaie, nu poate fi gestionată tot timpul când se găsesc mai multe numere de rezultate și, de asemenea, nu se poate citi. Deci echipa merge cu următoarea versiune în C # 3.0 în care a fost introdusă, folosind această abordare poate rezolva astfel de tipuri de probleme, deoarece interogarea de limbaj integrată este blocul de elemente de interogare pentru mai multe tipuri de colectare și, de asemenea, obține rezultatele cu o singură declarație. .
Să vedem exemplul de mai jos explică faptul că interogarea lambda de expresie LINQ ajută la aflarea unui anumit student din colecția de liste.

Program de probă

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();
)
)

Astfel, Language Integrated Query face ca codul să fie comprimat suplimentar și de înțeles și poate fi folosit și pentru interogarea mai multor surse de date.

Care este utilizarea LINQ

  • Limba bine cunoscută
  • Mai puțin codare
  • Cod lizibil
  • tehnica identică de interogare a numeroase surse de date
  • Compilați protecția în timp a interogărilor
  • Întreținere Intelli-Sense
  • Determinarea datelor

Lucrul cu LINQ

Surse de date interogate prin interogare în limbaj. Tipurile de LINQ sunt menționate mai jos pe scurt.

  • LINQ la obiecte
  • LINQ către XML (XLINQ)
  • LINQ la setul de date
  • LINQ către SQL (DLINQ)
  • Linq către entități

1. LINQ către obiect

LINQ la obiecte prezintă tratarea oricărei întrebări LINQ care acceptă IEnumerable pentru accesarea colecțiilor și obiectelor de memorie în memorie. Variabila Returnare în Linq la obiecte va fi de tipul IEnumerabil.

2. LINQ către XML (XLinq)

LINQ către XML este disponibil în spațiul de nume numit System.Xml.Linq. pentru a interoga sursele de date XML, folosim LINQ pentru XML. De asemenea, Linq to XML folosește cel mai bine funcționalitățile cadrului .NET, cum ar fi verificarea timpului de compilare, depanare și tastarea puternică și așa mai departe. la încărcarea documentelor XML în memorie este simplă și mai ușoară în modificarea și interogarea documentelor.

3. LINQ la setul de date

LINQ la DataSet Care menține interogări folosind tabele de date și seturi de date ADO.NET. când datele sunt consolidate din mai multe surse de date, vom folosi LINQ la Dataset pentru interogare.

4. LINQ către SQL

LINQ către SQL se mai numește DLINQ și este o parte a interogării de limbaj integrat; prin utilizarea expresiilor LINQ, permite interogarea datelor din baza de date SQL Server.

5. LINQ către entități

În LINQ către entități folosind C # Este un mod simplu și simplu de a interoga entitățile. o interogare este o expresie, care este folosită pentru a obține datele din depozitul de date. prin utilizarea acestui DBContext în EF 6 sau DBContext în cadrul cadrului entității EF Core se face interogarea bazei de date.

avantaje

Interogarea integrată în limbi străine oferă o masă de avantaje; Unele dintre avantajele sunt prezentate mai jos.

  • Acest lucru ajută la aflarea greșelilor în timpul proiectării datorită evidențierii sintaxei.
  • Ajută la scrierea interogării mai exact.
  • În interogare Language Integrated, timpul de dezvoltare va fi redus, deoarece scrierea codului este mult mai rapidă și mai ușoară în query Language Integrated Query.
  • Este integrat cu limbajul C #, datorită faptului că face depurarea ușoară.
  • Are caracteristicile sale ierarhice datorită faptului că vizualizarea relației dintre două tabele este mai ușoară și necesită mai puțin timp pentru a crea interogări folosind mai multe uniri.
  • Interogare de limbaj integrat acceptă o transformare mai ușoară pentru conversia de la un tip de date la alt tip de date, cum ar fi transformarea de la SQL la datele XML.
  • Prin utilizarea LINQ dezvoltatorii pot fi ușor ușor de înțeles și de înțeles din cauza codului său mai lizibil.
  • În LINQ va exista o sintaxă uniformă pentru interogarea mai multor surse de date.
  • În timpul compilării, LINQ oferă verificarea tipului obiectelor.
  • Acesta susține conturarea datelor, putem prelua date sub diferite forme.

De ce ar trebui să folosim LINQ?

Să vedem de ce este dezvoltată interogarea Language Integrated sau de ce folosim LINQ, există mai multe puncte pentru a defini de ce utilizăm interogarea Language Integrated.

  • Atunci când compară cu SQL, LINQ este ușor de lucrat, un limbaj la nivel înalt și bine orientat.
  • Principiul principal din spatele construirii LINQ este, mai devreme de C # 3.0, pentru găsirea unui anumit obiect pe care îl foloseam pentru fiecare, pentru buclă, delegați, folosind toate acestea, a existat un dezavantaj major, deoarece pentru a afla un obiect trebuie să codăm mai multe linii de codare care creează un program mai puțin citit și, de asemenea, mai mult timp. Pentru a depăși aceste probleme, LINQ a fost introdus, deoarece interogarea de limbă integrată va face programele / codarea într-un număr foarte redus de linii și, de asemenea, codul devine mai lizibil și odată ce codul va fi standardizat, putem utiliza același cod în mai multe alte programe.
  • În timpul perioadei de rulare, ajută la găsirea erorilor, astfel încât să putem elimina sau corecta cu ușurință erorile și, de asemenea, oferă o verificare în timp compilat.
  • Într-o manieră eficientă, LINQ ne oferă o nouă direcție pentru a rezolva astfel de probleme; și, de asemenea, putem utiliza interogarea de limbaj integrată cu colecții și tableta C #.
  • Se menține într-o expresie de interogare, metode de extensie, variabile implicite de tip, expresii lambda, obiecte și colecții.
  • În interogarea Language Integrated nu este necesară învățarea diferitelor tipuri de limbi, deoarece o interogare distinctă poate funcționa cu orice tip de bază de date. De asemenea, acceptă orice fel de sursă de date cum ar fi obiecte, XML, Entități, SQL ș.a.

Domeniu de interogare a limbajului integrat

Este creat pentru a încărca diferența dintre .NET convențional, care prezintă o abordare orientată pe obiect și o abordare puternică de tastare. Language Integrated Query a introdus un model ușor de învățat pentru modificarea și interogarea datelor și, de asemenea, acceptă surse de date care includ XML, structuri de date în memorie și date relaționale. Interogare de limbaj integrat integrată cu o abordare relațională orientată pe obiecte și relaționale. Este o expresie puternic tipificată. Expresiile puternic dactilografiate vă asigură că valoarea de tipul corect la timpul de compilare și în timpul rulării, acesta împiedică identificarea erorilor codate de găină.

De ce avem nevoie de LINQ?

Mai devreme pentru LINQ, este necesar să înveți SQL, C # și mai multe API-uri care se leagă pentru a dezvolta o întreagă aplicație. Astfel că limbajul de programare și sursele de date se confruntă cu unele probleme, codificarea face, de asemenea, dificilă. Să vedem un exemplu al mai multor tehnici care au fost utilizate de programatori la interogarea datelor înainte de sosirea interogării Language Integrated.

Program de probă

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;

Cum te va ajuta această tehnologie în creșterea carierei?

Este un motor de căutare care ajută la eficientizarea fluxurilor de lucru ale datelor. Acesta va ajuta la creșterea carierei într-un mod bine orientat. Aceasta susține toată echipa ușor de lucrat și reduce reluarea și menține proiectul la timp programat și în bugetul estimat.

Concluzie

Ați citit bine cum diferă LINQ și îmbunătățiți-vă cu ADO.NET. În plus, Acest lucru ajută la economisirea timpului. În cele din urmă, ați știut despre modul în care se pot utiliza interogările de limbaj integrate pentru mai multe tipuri de surse de date. În acest articol, am aflat despre procesul de lucru al interogării lingvistice integrate și cum să o utilizăm. Sper că acest articol te-ar fi ajutat.

Articole recomandate

Acesta este un ghid pentru Ce este LINQ ?. Aici discutăm definiția, avantajele și utilizarea împreună cu Programul și domeniul de aplicare. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Instrumente GUI MongoDB
  2. Ce este Dropbox?
  3. Ce este Laravel?
  4. Ce este StringBuilder în C #