Zvanično
ili formalno LINQ – Language Intergrated Query – Upit integrisan u jezik; jeste
jezik struktuiranih upita za pretraživanje i lokalnih kolekcija objekta ali i
udaljenih izvora podataka na takav način da ne narušava bezbednost podataka. Za
mene lično LINQ je jezik struktuiranih upita koji omogućava skraćeno pisanje
code-a u radu sa bilo kakvim kolekcijama i dinamičkim sastavljanjem upita. LINQ vam omogućava da radite sa različitim izvorima podataka dok koristite isti
način kodiranja. Takođe pored C# programskog jezika, LINQ koriste i drugi programski jezici koji
podržavaju .Net Framework 3.5 ili noviji. Znam da vam sve ovo zvuči kompleksno
i sami po sebi LINQ upiti jesu kompleksni i neophodno je da se na neki način
dosta isprakticirate u korišćenju istih kako bi vam bilo jasno kolika je prednost
korišćenja LINQ-a u vašem kodiranju. LINQ isključivo radi sa sekvencama i
elementima. Sekvenca vam je svaki objekat koji implementira interfejs IEnumerable<T> dok je elemenat svaka stavka sekvence. To
takođe znači da se LINQ upiti mogu primenjivati nad bilo kojim izvorom podataka
koji primenjuje interfejs IEnumerable<T>. Međutim LINQ se takođe deli na mnogo potrebnih
i opcionih delova poput LINQ provajdera, proširenih metoda, lambda izraza i
sintakse za razumevanje LINQ upita.
( LINQ Arhitektura )
LINQ provajderi, poput LINQ to Objects, LINQ to Entities, LINQ to XML itd. su komponente
između LINQ upita i izvora podataka koje konvertuju standardne LINQ operacije u
specifične komande koje izvori podataka mogu razumeti. Npr. LINQ to SQL
provajder konvertuje LINQ upite u T-SQL tako da baze podataka mogu razumeti
iste. Tako da vi ne morate pisati T-SQL komande u vašem code-u kako bi ste
manipulisali podacima iz baze podataka. Proširene
metode koje LINQ koristi su već izgrađene metode poput Where, Select, OrderBy
itd. Klazula
Where se zove i operator restrikcije jer ograničava podatke u rezultatu
izvršavanju upita dok klazula Select specifira podatke koji će se pojaviti kao
rezultat. Lambda
izrazi se opciono koriste umesto imenovanih metoda i pojednostavljuju kodiranje.
Lambda izraz je kratak i koncizan način pisanja anonimnih metoda, znači metoda
koji nemaju ime; koji se koriste za izvršavanje upita. Lambda operator se piše
ovako => Sintakse
za razumevanje LINQ upita su opcione C# ključne reči poput from, in, where,
select, desceding itd. Oni pojednostavljuju upite koje pišete.
Kako
je nastao LINQ ?
