Showing posts with label in. Show all posts
Showing posts with label in. Show all posts

Tuesday, April 17, 2018

Uvod u LINQ

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 ?