Introduktion til sprogintegreret forespørgsel

LINQ er forkortet som sprogintegreret forespørgsel. Det er etableret i .NET 3.5 og Visual Studio 2008, hovedkonceptet med LINQ er at give faciliteten til .NET-sprog (som C #, VB.NET osv.) Til at oprette forespørgsler for at hente data tilbage fra datakilden. At hente dataene fra forskellige formater og kilder i C # og VB.NET dens ensartede forespørgselsyntax. Det eliminerer variationen mellem databaser og programmeringssprog, fordi det integreres med C # / VB og også leverede den distinkte forespørgselsgrænseflade til forskellige typer datakilder. Det gør det muligt at bruge en objektorienteret tilgang på resultatsæt; de resulterende forespørgsler returnerer resultater som objekter.

Forskellen mellem SQL og LINQ er den, hvor (Language Integrated Query) er struktureret forespørgselssyntax, som indbygget VB.NET og C # for at hente dataene fra forskellige typer datakilder, der inkluderer MS SQL Server, ADO.Net DataSet, webservice, Samlinger, XML-dokumenter og andre databaser. På samme måde er SQL et struktureret forespørgselssprog, der bruges til at gemme og hente dataene fra en database.

Definition

Sprogintegreret forespørgsel foreslår en kompakt signifikant og forståelig syntaks til driftsdata. Sprogintegreret forespørgsel er en Microsoft-programmeringstaktik og -model, der effektivt inkluderer formelle forespørgselsevner til Microsoft .NET-programmeringssprog. Det har et behov for tilstedeværelsen af ​​bestemte sprogudvidelser. Den faktiske værdi af sprogintegreret forespørgsel kommer fra dens evne til at anvende den samme forespørgsel til en DataSet, SQL-database, en række objekter i hukommelsen og også forskellige typer data.

forståelse

Det består af tre-lags arkitektur, hvor det øverste lag har sprogudvidelser, og det nederste lag har datakilder, der generelt er objekter, der implementerer IEnumerable eller IQueryable generiske grænseflader. LINQ-arkitektur er vist nedenfor.

I C # præsenterer LINQ i navneområdet System. LINQ. Den definerer forskellige typer metoder, og klasser understøtter LINQ-forespørgsler. I navneområdet består det af

  • En tæller klasse indeholder standardforespørgselsoperatører, der fungerer på objekt udfører IEnumerable.
  • Forespørgselsklasse indeholder standardforespørgselsoperatører, der fungerer på objekt udfører IQueryable.

Kerneenhederne deri er:

  • Brug af system. Linq: Udstyr med klasser og interface til at opretholde LINQ-forespørgsler
  • Brug af System.Collections.Generic: (LINQ til objekter) Lad brugeren opbygge stærk-typede samlinger, der gør tilgængelige typesikkerhed og ydeevne
  • Brug af System.Data.Linq: (LINQ til SQL) Tilbud med funktionalitet til højre for at bruge relationelle databaser
  • Brug af System.XML.Linq: (LINQ til XML) Præsenterer funktionaliteten for ret til at bruge XML-dokumenter ved hjælp af LINQ.
  • Brug af System.Data.Linq.Mapping: Tildelt en klasse som en enhed, der er forbundet med en database.

Hvordan gør LINQ det så nemt at arbejde?

Når man arbejder med LINQ er så let, fordi den sprogintegrerede forespørgsel giver en sprogintegreret og objektbaseret tilgang til forespørgslen. Ved at bruge sprogintegreret forespørgsel kan vi forespørge XML, database og også samlinger. Det kontrollerer syntaks i kompileringstiden. I sprogintegreret forespørgsel er skrivningskoder hurtigere på grund af, at udviklingstiden også reduceres automatisk. For at forstå, hvorfor vi skal bruge sprogintegreret forespørgsel, lad os se nogle eksempler. Antag, at du vil finde listen over unge studerende fra en række studerende-objekter.
Tidligere end C # 2.0 måtte vi bruge en 'for hver' eller en 'for' løkke for at gå over samlingen for at finde et nøjagtigt objekt. For eksempel at skrive koden for at liste alle studerende objekter fra en række studerende, hvor SAge er mellem 12 og 20.

Prøveprogram til brug til sløjfe

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

Brugen af ​​for loop er byrdefuld, ikke håndterbar hele tiden, når man finder flere antal resultater og heller ikke er læsbar. Så holdet går med den næste version i C # 3.0, det blev introduceret, ved hjælp af denne tilgang kan løse sådanne typer problemer, fordi sprogintegreret forespørgsel er byggestenen til forespørgselselementer til flere slags samlinger, og det får også resultaterne med en enkelt erklæring .
Lad os se eksemplet nedenfor forklare, at lambda-udtrykket LINQ-forespørgsel hjælper med at finde ud af en bestemt studerende fra samlingen af ​​lister.

Prøveprogram

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

Således gør sprogintegreret forespørgsel kode yderligere komprimeret og forståelig, og den kan også bruges til at stille spørgsmål til flere datakilder.

Hvad er brugen af ​​LINQ

  • Velkendt sprog
  • Mindre kodning
  • Læsbar kode
  • den identiske teknik til forespørgsel om talrige datakilder
  • Kompilér tidsbeskyttelse af forespørgsler
  • Intelli-Sense vedligeholdelse
  • Bestemmelse af data

Arbejde med LINQ

Sprogintegrerede forespørgsel aktiverede datakilder. typerne af LINQ nævnes nedenfor i korte træk.

  • LINQ til objekter
  • LINQ til XML (XLINQ)
  • LINQ til datasæt
  • LINQ til SQL (DLINQ)
  • Linq til enheder

1. LINQ til objekt

LINQ til objekter Præsenterer håndtering af enhver LINQ-forespørgsel, der understøtter IEnumerable til at få adgang til dataindsamling og -objekter i hukommelsen. Returvariablen i Linq til objekter vil være af type IE nummererbar.

2. LINQ til XML (XLinq)

LINQ til XML er tilgængelig i navneområdet kaldet System.Xml.Linq. til at stille spørgsmål til XML-datakilder, bruger vi LINQ til XML. Linq til XML gør endvidere den fineste brug af .NET-rammefunktionaliteter som Compile-Time Checking, Debugging og Strong Typeing og så videre. når indlæsning af XML-dokumenter i hukommelsen er enkel og lettere i dokumentændring og forespørgsel.

3. LINQ til datasæt

LINQ til datasæt, som opretholder forespørgsler ved hjælp af ADO.NET-datatabeller og datasæt. når data konsolideres fra flere datakilder, bruger vi LINQ til datasæt til forespørgsel.

4. LINQ til SQL

LINQ til SQL kaldes også DLINQ og er en del af sprogintegreret forespørgsel; ved hjælp af LINQ-udtryk giver det mulighed for forespørgsel om data i SQL Server-databasen.

5. LINQ til enheder

I LINQ til enheder ved hjælp af C # Det er en nem og enkel måde at forespørge enhederne på. en forespørgsel er et udtryk, der bruges til at hente dataene fra datalageret. ved at bruge denne DBContext i EF 6 eller DBContext i EF Core-enhedsrammer, der forespørger databasen, er gjort.

Fordele

Sprogintegreret forespørgsel tilbyder en masse fordele; Nogle af fordelene er givet nedenfor.

  • Det hjælper med at finde ud af fejl i designtiden på grund af syntaksbelysning.
  • Det hjælper med at skrive forespørgslen mere præcist.
  • I sprogintegreret forespørgsel vil udviklingstiden reduceres, fordi det at skrive kode er meget hurtigere og lettere i sprogintegreret forespørgsel.
  • Det er integreret med C #-sprog, fordi det gør det nemt at debugge.
  • Det har sine hierarkiske funktioner, fordi visningen af ​​forholdet mellem to tabeller er lettere, og det tager mindre tid at oprette forespørgsler ved hjælp af flere sammenføjninger.
  • Sprogintegreret forespørgsel understøtter lettere transformering til konvertering fra en datatype til en anden datatype som transformationen fra SQL til XML-data.
  • Ved at bruge LINQ kan udviklere let vedligeholdes og forståelig på grund af dens kode, der er mere læselig.
  • I LINQ vil der være en ensartet syntaks til forespørgsel om flere datakilder.
  • Under kompileringstiden leverer LINQ typekontrol af objekter.
  • Det understøtter udformningen af ​​data, vi kan hente data i forskellige former.

Hvorfor skal vi bruge LINQ?

Lad os se, hvorfor sprogintegreret forespørgsel er udviklet, eller hvorfor vi bruger LINQ, der er flere punkter til at definere, hvorfor vi bruger sprogintegreret forespørgsel.

  • Når man sammenligner med SQL, er LINQ let at arbejde, et sprog på højt niveau og godt orienteret.
  • Hovedprincippet bag bygning af LINQ er, tidligere i C # 3.0 for at finde et bestemt objekt, vi brugte for hver, til loop, delegerede ved at bruge disse alle, der var en stor ulempe, for for at finde ud af et objekt, er vi nødt til at kode flere linjer med kodning, som skaber program, der er mindre læseligt og også mere tidskrævende. For at overvinde disse problemer blev LINQ introduceret, fordi sprogintegreret forespørgsel vil gøre programmerne / kodningen i et meget mindre antal linjer, og også koden gør mere læsbar, og når koden er standardiseret, kan vi bruge den samme kode i flere andre programmer.
  • I løbet af runtime hjælper det med at finde fejlene, så vi let kan fjerne eller rette fejlene, og det giver også kontrol af kompileringstid.
  • På en effektiv måde giver LINQ os en ny retning for at løse sådanne problemer; og vi kan også bruge sprogintegreret forespørgsel med samlinger og C # array.
  • Dens opretholder i et forespørgselsudtryk, udvidelsesmetoder, implicitte typevariabler, lambda-udtryk, objekter og samlinger.
  • I sprogintegreret forespørgsel er der ikke behov for at lære forskellige sprogtyper, fordi en bestemt forespørgsel kan fungere med enhver form for database. Og det understøtter også enhver form for datakilde som objekter, XML, enheder, SQL og så videre.

Sprogintegreret forespørgselsomfang

Det er skabt for at indlæse kløften mellem konventionel .NET, der præsenterer en objektorienteret tilgang og en stærk typningstilgang. Sprogintegreret forespørgsel introducerede en letlæringsmodel til ændring og forespørgsel om data, og det understøtter også datakilder, der inkluderer XML, in-memory datastrukturer og relationelle data. Sprogintegreret forespørgsel integreret med en objektorienteret og relationel tilgang. Det er et stærkt typisk udtryk. Stærkt indtrykte udtryk sørger for, at værdien som for den rigtige type på kompileringstiden og under kørsel forhindrer, at fejlene findes hønekodet.

Hvorfor har vi brug for LINQ?

Tidligere til LINQ er det nødvendigt at lære SQL, C # og flere API'er, som binder sammen om at udvikle en hel applikation. Så disse programmeringssprog og datakilder står over for nogle problemer og kodning gør det også vanskeligt. Lad os se et eksempel på adskillige teknikker, der blev brugt af programmerere, når de søgte data inden ankomsten af ​​sprogintegreret forespørgsel.

Prøveprogram

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;

Hvordan denne teknologi vil hjælpe dig i karrierevækst?

Det er en søgemaskine, der hjælper med at strømline data-workflows. Det vil hjælpe med karrierevækst på en velorienteret måde. Det understøtter hele teamet, der er nemt at arbejde med og reducerer omarbejdet og holder også projektet med på planlagt tid og inden for det estimerede budget.

Konklusion

Du har læst godt, hvordan LINQ varierer fra og blive bedre på ADO.NET. Derudover hjælper det med tidsbesparelse. I sidste ende har du kendt, hvordan sprogintegrerede forespørgsler kan bruges til flere typer datakilder. I denne artikel lærte vi om arbejdsprocessen med sprogintegreret forespørgsel, og hvordan man bruger den. Jeg håber, at denne artikel ville have hjulpet dig.

Anbefalede artikler

Dette er en guide til Hvad er LINQ ?. Her diskuterer vi definitionen, fordelene og brugen sammen med prøveprogrammet og anvendelsesområdet. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. MongoDB GUI-værktøjer
  2. Hvad er Dropbox?
  3. Hvad er Laravel?
  4. Hvad er StringBuilder i C #

Kategori: