Uvod u integrirani upit sa jezikom

LINQ se skraćuje kao Jezik integrirani upit. Osnovan je u .NET 3.5 i Visual Studio 2008, glavni koncept LINQ-a je pružiti mogućnost .NET jezicima (poput C #, VB.NET itd.) Za izgradnju upita za povratak podataka iz izvora podataka. Da biste preuzeli podatke iz različitih formata i izvora u C # i VB.NET, njegova je jedinstvena sintaksa upita. Eliminira varijancu između baza podataka i programskih jezika jer se integrirao u C # / VB i također pružio to posebno upitno sučelje za razne vrste izvora podataka. Omogućuje uporabu objektno orijentiranog pristupa na skupu rezultata; rezultirajući upiti vraćaju rezultate kao objekte.

Razlika između SQL-a i LINQ-a je u tome što je (Language Integrated Query) strukturirana sintaksa upita koja ugrađuje VB.NET i C # za dohvaćanje podataka iz različitih vrsta izvora podataka što uključuje MS SQL Server, ADO.Net DataSet, web uslugu, Zbirke, XML dokumenti i druge baze podataka. Na isti je način SQL strukturirani jezik upita koji se koristi za pohranjivanje i preuzimanje podataka iz baze podataka.

definicija

Integrirani upit jezika predlaže kompaktnu značajnu i razumljivu sintaksu za operativne podatke. Integrirani upit jezika je Microsoftova programska taktika i model koji učinkovito uključuje formalne sposobnosti upita u Microsoftove .NET programske jezike. Ima potrebu za prisutnošću određenih jezičnih nastavaka. Stvarna vrijednost jezika integriranog upita proizlazi iz njegove mogućnosti da isti upit primijeni na DataSet, SQL bazu podataka, niz objekata u memoriji i razne vrste podataka.

Razumijevanje

Sastoji se od troslojne arhitekture u kojoj gornji sloj ima jezična proširenja, a donji sloj imaju izvore podataka koji su općenito objekti koji implementiraju IEnumerable ili IQueryable generička sučelja. LINQ arhitektura je prikazana dolje.

U C #, LINQ se predstavlja u sustavu imena. LINQ. Definira različite vrste metoda i klase podržavaju LINQ upite. U prostoru imena sastoji se od

  • Brojna klasa sadrži standardne operatore upita koji djeluju na objektima izvršavaju IEnumerable.
  • Klasa koja se može ispitivati ​​sadrži standardne operatore upita koji funkcije objekta izvršavaju IQueryable.

Temeljni sklopovi u njemu su:

  • Korištenje sustava. Linq: darujte klase i sučelje za održavanje LINQ upita
  • Korištenje System.Collections.Generic: (LINQ objektima) Dopustite korisniku da izrađuje strogo tipkane kolekcije koje omogućavaju sigurnost i performanse tipa
  • Korištenje System.Data.Linq: (LINQ to SQL) Ponuda s funkcionalnošću za pravo korištenja relacijskih baza podataka
  • Korištenje System.XML.Linq: (LINQ do XML) Predstavlja funkcionalnost za pravo korištenja XML dokumenata pomoću LINQ.
  • Korištenje System.Data.Linq.Mapping: dodjeljuje klasu kao entitet povezan s bazom podataka.

Kako LINQ čini rad tako lakim?

Rad s LINQ-om je tako jednostavan, jer upit integriran u jezik pruža upitno integriran jezik i objektno utemeljen pristup. Pomoću jezično integriranog upita možemo pregledati XML, bazu podataka i zbirke. Provjerit će sintaksu tijekom kompiliranja. U Jezik integrirani upit kod pisanja je brži zbog toga se vrijeme razvoja također automatski smanjuje. Da bismo shvatili zašto trebamo koristiti upit integriran u jezik, pogledajmo nekoliko primjera. Pretpostavimo da želite potražiti popis mladih studenata iz niza predmeta Student.
Ranije od C # 2.0, morali smo upotrijebiti petlju 'za svaki' ili 'za' da bismo prošli zbirku kako bismo otkrili točan objekt. Na primjer, da biste napisali kôd za popis svih Studentskih objekata iz niza učenika u kojem je SAge između 12 i 20.

Primjer programa za korištenje petlje

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

Upotreba petlje je opterećujuća, nije lako upravljati cijelo vrijeme pri pronalaženju više brojeva rezultata i također nije čitljiva. Dakle, tim ide sa sljedećom verzijom u C # 3.0 koja je predstavljena, korištenjem ovog pristupa može se riješiti takve vrste problema, jer je integrirani upit jezika sastavni dio elemenata upita za nekoliko vrsta zbirke, a također dobiva rezultate s jednom izjavom,
Pogledajmo primjer u nastavku objašnjava da lambda izraz LINQ upit pomaže u pronalaženju određenog učenika iz zbirke popisa.

Primjer programa

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

Dakle, jezično integrirani upit čini kôd dodatno komprimiranim i razumljivim, a može se koristiti i za ispitivanje više izvora podataka.

Kakva je upotreba LINQ-a

  • Dobro poznat jezik
  • Manje kodiranja
  • Čitati kod
  • identična tehnika ispitivanja brojnih izvora podataka
  • Sastavi zaštitu vremena od upita
  • Održavanje Intelli-Sensea
  • Određivanje podataka

Rad sa LINQ-om

Izvori podataka s omogućenim integriranim jezikom upita. Vrste LINQ-a navedene su u nastavku.

  • LINQ objektima
  • LINQ u XML (XLINQ)
  • LINQ u skupu podataka
  • LINQ u SQL (DLINQ)
  • Linq do entiteta

1. LINQ za objekt

LINQ objektima predstavlja rukovanje bilo kojim LINQ upitom koji podržava IEbroble za pristup zbirkama i objektima u memoriji. varijabla povratka u Linq-u objektima bit će tipa I nebrojeno.

2. LINQ u XML (XLinq)

LINQ to XML dostupan je u prostoru imena pod nazivom System.Xml.Linq. da bismo upitali XML izvore podataka, koristimo LINQ do XML. Nadalje, Linq do XML koristi najbolju funkcionalnost .NET okvira, kao što su provjera vremena kompilacije, uklanjanje pogrešaka i snažno tipkanje i tako dalje. kad je umetanje XML dokumenata u memoriju jednostavno i lakše u izmjeni i upiti dokumenata.

3. LINQ do skupa podataka

LINQ u DataSet koji održava upite koristeći ADO.NET tablice podataka i skupove podataka. kada se podaci objedine iz nekoliko izvora podataka, koristićemo LINQ do skupa podataka za postavljanje upita.

4. LINQ u SQL

LINQ u SQL se također naziva DLINQ i dio je integriranog upita u jezik; upotrebom izraza LINQ, omogućuje ispitivanje podataka u bazi podataka SQL Server.

5. LINQ entitetima

U LINQ-u do entiteta pomoću C # To je jednostavan i jednostavan način pretraživanja entiteta. Upit je izraz koji se koristi za dobivanje podataka iz spremišta podataka. pomoću ovog DBContext-a u EF 6 ili DBContext u EF Core okviru entiteta postavlja se upit u bazi podataka.

prednosti

Integrirani upit jezika nudi mnoštvo prednosti; Neke su prednosti dane u nastavku.

  • Pomaže u pronalaženju pogrešaka tijekom vremena dizajniranja zbog isticanja sintakse.
  • Pomaže u preciznijem pisanju upita.
  • U Jezik integrirani upit vrijeme razvoja smanjuje se jer je pisanje koda mnogo brže i lakše u Integriranom jeziku s jezikom.
  • Integriran je s jezikom C # zbog čega olakšava ispravljanje pogrešaka.
  • Ima svoje hijerarhijske značajke zbog toga što je pregled odnosa između dvije tablice jednostavniji i potrebno je manje vremena za stvaranje upita koristeći više pridruživanja.
  • Integrirani upit jezika podržava lakšu transformaciju za pretvaranje iz jedne vrste podataka u drugu vrstu podataka poput transformacije iz SQL u XML podatke.
  • Korištenjem LINQ programera može se lako održati i razumljivo jer je njegov kod čitljiviji.
  • U LINQ-u će postojati jedinstvena sintaksa za postavljanje nekoliko izvora podataka.
  • Za vrijeme kompiliranja LINQ pruža provjeru vrste objekata.
  • Podržava oblikovanje podataka, možemo dohvatiti podatke različitih oblika.

Zašto trebamo koristiti LINQ?

Pogledajmo zašto je razvijen Integrirani upit jezika ili zašto koristimo LINQ, postoji nekoliko točaka za definiranje zašto koristimo Integrirani upit jezika.

  • U usporedbi sa SQL-om, LINQ je jednostavan za rad, jezik visoke razine i dobro orijentiran.
  • Glavni princip koji stoji iza stvaranja LINQ-a je, ranije, u C # 3.0 za pronalaženje određenog objekta koji smo koristili za svaki, za petlju, delegate koristeći sve ove, postojao je veliki nedostatak jer da bismo saznali objekt, moramo kodirati nekoliko redaka kodiranje koji program čini manje čitljivim i dugotrajnijim. Za prevladavanje ovih problema uveden je LINQ jer će upit integrirani u jezik učiniti programe / kodiranje u vrlo manjem broju redaka, a također će kod učiniti čitljivijim, a kada se kôd standardizira, možemo isti kod koristiti u nekoliko drugih programa.
  • Tijekom izvođenja, pomaže vam u pronalaženju pogrešaka kako bismo lako uklanjali ili ispravljali pogreške, a pruža i provjeru vremena kompilacije.
  • Na učinkovit način LINQ nam daje novi smjer za rješavanje takvih pitanja; a također možemo koristiti jezički integrirani upit s kolekcijama i nizom C #.
  • Održava se u upitnom izrazu, metodama proširenja, varijabla implicitnih vrsta, lambda izrazima, objektima i zbirkama.
  • U Upitu integriranog u jezik nema potrebe za učenjem različitih vrsta jezika, jer različiti upiti mogu raditi s bilo kojom vrstom baze podataka. A također podržava bilo koju vrstu izvora podataka kao što su objekti, XML, Entiteti, SQL i tako dalje.

Opseg upita s integriranim jezikom

Stvoren je za učitavanje praznine između konvencionalnog .NET-a, koji predstavlja objektno orijentirani pristup i snažan pristup tipkanju. Integrirani upit jezika uveo je model lakog učenja za modificiranje i postavljanje upita, a također podržava izvore podataka koji uključuju XML, podatkovne strukture u memoriji i relacijske podatke. Jezik integrirani upit integriran s objektno orijentiranim i relacijskim pristupom. To je snažno tipkan izraz. Snažno tipkani izrazi osiguravaju da vrijednost ispravnog tipa u vrijeme sastavljanja i za vrijeme izvođenja sprečava da se greške pronađu hen kodirane.

Zašto nam treba LINQ?

Ranije za LINQ potrebno je naučiti SQL, C # i nekoliko API-ja koji se vežu za razvoj čitave aplikacije. Tako da se programski jezik i izvori podataka suočavaju s nekim problemima, a kodiranje također otežava. Pogledajmo primjer nekoliko tehnika koje su programeri koristili pri pretraživanju podataka prije dolaska upita s integriranim jezikom.

Primjer programa

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;

Kako će vam ova tehnologija pomoći u razvoju karijere?

To je tražilica koja pomaže u pojednostavljivanju protoka podataka. To će pomoći u karijeri na dobro orijentiran način. Podržava lagan rad cijelog tima i smanjuje preradu, a projekt također drži u zakazano vrijeme i unutar procijenjenog proračuna.

Zaključak

Dobro ste pročitali kako se LINQ razlikuje od ADO.NET-a i poboljšajte ga. Uz to, pomaže u uštedi vremena. Konačno, znali ste kako se jezično integrirani upiti mogu koristiti za nekoliko vrsta izvora podataka. U ovom smo članku naučili o procesu rada jezično integriranog upita i kako ga koristiti. Nadam se da će vam ovaj članak pomoći.

Preporučeni članci

Ovo je vodič za temu Što je LINQ ?. Ovdje smo raspravljali o definiciji, prednostima i uporabi, zajedno s programom i opsegom uzoraka. Možete i proći naše druge predložene članke da biste saznali više -

  1. MongoDB GUI alati
  2. Što je Dropbox?
  3. Što je Laravel?
  4. Što je StringBuilder u C #

Kategorija: