Introduzione alla query integrata nella lingua

LINQ è abbreviato come Language Integrated Query. È stabilito in .NET 3.5 e Visual Studio 2008, il concetto principale di LINQ è quello di fornire la possibilità ai linguaggi .NET (come C #, VB.NET, ecc.) Di creare query per recuperare i dati dall'origine dati. Per recuperare i dati da vari formati e fonti in C # e VB.NET la sua sintassi di query uniforme. Elimina la varianza tra database e linguaggi di programmazione perché si integra con C # / VB e fornisce anche un'interfaccia di query distinta per vari tipi di origini dati. Consente di utilizzare un approccio orientato agli oggetti sul set di risultati; le query risultanti restituiscono risultati come oggetti.

La differenza tra SQL e LINQ è quella in cui (Language Integrated Query) è una sintassi di query strutturata che incorpora VB.NET e C # per recuperare i dati da vari tipi di origini dati che includono MS SQL Server, ADO.Net DataSet, servizio web, Raccolte, documenti XML e altri database. Allo stesso modo, SQL è un linguaggio di query strutturato che viene utilizzato per archiviare e recuperare i dati da un database.

Definizione

Language Integrated Query propone una sintassi significativa e comprensibile compatta per i dati operativi. Language Integrated Query è una tattica e un modello di programmazione Microsoft che include in modo efficace capacità di query formale nei linguaggi di programmazione Microsoft .NET. Ha bisogno della presenza di particolari estensioni di lingua. Il valore effettivo di Language Integrated Query deriva dalla sua capacità di applicare la stessa query a un DataSet, a un database SQL, a una matrice di oggetti in memoria e anche a vari tipi di dati.

Comprensione

È costituito da un'architettura a tre livelli in cui il livello superiore ha le estensioni del linguaggio e il livello inferiore ha origini dati che sono in oggetti generali che implementano interfacce generiche IEnumerable o IQueryable. L'architettura LINQ è mostrata di seguito.

In C #, LINQ presenta nello spazio dei nomi Sistema. LINQ. Definisce vari tipi di metodi e classi che supportano le query LINQ. Nello spazio dei nomi, è costituito da

  • Una classe enumerabile contiene operatori di query standard che funzionano sull'oggetto eseguono IEnumerable.
  • La classe di query contiene operatori di query standard che funzionano sull'oggetto eseguono IQueryable.

I gruppi principali in esso contenuti sono:

  • Utilizzando il sistema. Linq: dotare di classi e interfaccia per gestire le query LINQ
  • Utilizzando System.Collections.Generic: (LINQ to Objects) Consenti all'utente di creare raccolte fortemente tipizzate che rendano disponibili la sicurezza e le prestazioni dei tipi
  • Utilizzo di System.Data.Linq: (da LINQ a SQL) Offerta con la funzionalità di destra per utilizzare database relazionali
  • Uso di System.XML.Linq: (LINQ to XML) Presenta la funzionalità per l'uso corretto dei documenti XML tramite LINQ.
  • Utilizzo di System.Data.Linq.Mapping: assegnata una classe come entità connessa a un database.

In che modo LINQ semplifica il lavoro?

Quando si lavora con LINQ è così facile perché la query integrata nella lingua fornisce un approccio alla query integrato nella lingua e basato su oggetti. Utilizzando la query integrata nella lingua è possibile eseguire query su XML, database e anche raccolte. Controllerà la sintassi durante il tempo di compilazione. In Language Integrated Query la scrittura di codici è più rapida a causa della riduzione automatica dei tempi di sviluppo. Per capire perché dovremmo usare la query integrata nella lingua, vediamo alcuni esempi. Supponiamo che tu voglia individuare l'elenco di giovani studenti da una serie di oggetti Studente.
Prima di C # 2.0, dovevamo usare un ciclo 'per ogni' o un 'per' per andare oltre la collezione per scoprire un oggetto esatto. Ad esempio, per scrivere il codice per elencare tutti gli oggetti Studente da una matrice di Studenti in cui SAge è compreso tra 12 e 20.

Programma di esempio per l'utilizzo di For Loop

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

L'uso di for loop è oneroso, non gestibile continuamente quando si trovano più numeri di risultati e anche non leggibile. Quindi il team va con la prossima versione in C # 3.0 che è stata introdotta, l'uso di questo approccio può risolvere questi tipi di problemi perché la query integrata nel linguaggio è il blocco predefinito degli elementi della query per diversi tipi di raccolta e ottiene anche i risultati con una singola istruzione .
Vediamo l'esempio di seguito che spiega che l'espressione lambda LINQ query aiuta a scoprire uno studente specifico dalla raccolta di elenchi.

Programma di esempio

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

Pertanto, Language Integrated Query rende il codice ulteriormente compresso e comprensibile e può anche essere utilizzato per eseguire query su diverse origini dati.

A cosa serve LINQ

  • Lingua ben nota
  • Meno codice
  • Codice leggibile
  • la tecnica identica di interrogare numerose fonti di dati
  • Compilare la protezione del tempo delle query
  • Manutenzione Intelli-Sense
  • Determinazione dei dati

Lavorare con LINQ

Origini dati abilitate per query integrate nella lingua. i tipi di LINQ sono citati di seguito in breve.

  • LINQ to Objects
  • LINQ to XML (XLINQ)
  • LINQ to Data Set
  • LINQ to SQL (DLINQ)
  • Linq alle entità

1. LINQ to Object

LINQ to Objects presenta la gestione di qualsiasi query LINQ che supporta IEnumerable per l'accesso a raccolte e oggetti di dati in memoria. la variabile di ritorno in Linq agli oggetti sarà di tipo I Enumerable.

2. LINQ to XML (XLinq)

LINQ to XML è disponibile nello spazio dei nomi chiamato System.Xml.Linq. per interrogare origini dati XML, utilizziamo LINQ to XML. Linq to XML inoltre sfrutta al meglio le funzionalità del framework .NET come il controllo del tempo di compilazione, il debug e la tipizzazione avanzata e così via. quando il caricamento di documenti XML in memoria è semplice e facile nella modifica e nella query dei documenti.

3. LINQ to Dataset

LINQ to DataSet che gestisce le query utilizzando tabelle e set di dati ADO.NET. quando i dati vengono consolidati da diverse origini dati, utilizzeremo LINQ to Dataset per le query.

4. LINQ to SQL

LINQ to SQL è anche chiamato DLINQ ed è una parte della query integrata di linguaggio; mediante l'uso delle espressioni LINQ, consente di eseguire query sui dati nel database di SQL Server.

5. LINQ to Entities

In LINQ to Entities utilizzando C # È un modo semplice e semplice per interrogare le entità. una query è un'espressione, utilizzata per ottenere i dati dall'archivio dati. utilizzando questo DBContext in EF 6 o DBContext in EF Core framework di entità che esegue la query del database.

vantaggi

La query integrata nella lingua offre una serie di vantaggi; Alcuni dei vantaggi sono riportati di seguito.

  • Aiuta a scoprire errori durante la fase di progettazione a causa dell'evidenziazione della sintassi.
  • Aiuta a scrivere query in modo più accurato.
  • In Language Integrated Query il tempo di sviluppo verrà ridotto perché la scrittura di codice è molto più rapida e semplice in Language Integrated Query.
  • È integrato con il linguaggio C # grazie al quale semplifica il debug.
  • Ha le sue caratteristiche gerarchiche in quanto la visualizzazione della relazione tra due tabelle è più semplice e richiede meno tempo per la creazione di query utilizzando più join.
  • Language Integrated Query supporta una trasformazione più semplice per la conversione da un tipo di dati a un altro tipo di dati come la trasformazione da dati SQL a XML.
  • Utilizzando LINQ gli sviluppatori possono essere facilmente gestibili e comprensibili grazie al suo codice più leggibile.
  • In LINQ ci sarà una sintassi uniforme per l'interrogazione di diverse origini dati.
  • Durante il tempo di compilazione LINQ fornisce il controllo del tipo di oggetti.
  • Supporta la modellatura dei dati, possiamo recuperare i dati in varie forme.

Perché dovremmo usare LINQ?

Vediamo perché è sviluppata la query integrata di lingua o perché utilizziamo LINQ, ci sono diversi punti per definire perché utilizziamo la query integrata di lingua.

  • In confronto con SQL, LINQ è facile da usare, un linguaggio di alto livello e ben orientato.
  • Il principio fondamentale alla base della creazione di LINQ è, in precedenza a C # 3.0 per trovare un oggetto particolare che stavamo usando per ciascuno, per loop, delegati usando questi tutti c'era un grosso svantaggio perché per scoprire un oggetto dobbiamo codificare diverse righe di codifica che crea un programma meno leggibile e anche più dispendioso in termini di tempo. Per ovviare a questi problemi è stato introdotto LINQ, poiché la query integrata nel linguaggio eseguirà i programmi / la codifica in un numero molto minore di righe e anche il codice renderà più leggibile e una volta che il codice è standardizzato, possiamo usare lo stesso codice in molti altri programmi.
  • Durante il runtime, aiuta a trovare gli errori in modo che possiamo facilmente rimuovere o correggere gli errori e fornisce anche un controllo in fase di compilazione.
  • In modo efficace, LINQ ci offre una nuova direzione per risolvere tali problemi; e inoltre possiamo usare la query integrata nel linguaggio con le raccolte e l'array C #.
  • Conserva in un'espressione di query, metodi di estensione, variabili di tipo implicite, espressioni lambda, oggetti e raccolte.
  • In Language Integrated Query non è necessario apprendere vari tipi di lingue perché una query distinta può funzionare con qualsiasi tipo di database. Inoltre supporta qualsiasi tipo di origine dati come oggetti, XML, Entità, SQL e così via.

Ambito di query integrato nella lingua

È stato creato per caricare il divario tra .NET convenzionale, che presenta un approccio orientato agli oggetti e un forte approccio di digitazione. Language Integrated Query ha introdotto un modello di facile apprendimento per la modifica e l'interrogazione dei dati e supporta anche origini dati che includono XML, strutture di dati in memoria e dati relazionali. Language Integrated Query integrato con un approccio orientato agli oggetti e relazionale. È un'espressione fortemente tipizzata. Le espressioni fortemente tipizzate assicurano che il valore sia del tipo giusto al momento della compilazione e durante il runtime impedisce che gli errori vengano rilevati quando vengono codificati.

Perché abbiamo bisogno di LINQ?

In precedenza a LINQ, è necessario imparare SQL, C # e diverse API che si uniscono per sviluppare un'intera applicazione. Pertanto, il linguaggio di programmazione e le fonti di dati devono affrontare alcuni problemi e anche la codifica rende difficile. Vediamo un esempio di diverse tecniche utilizzate dai programmatori durante l'interrogazione dei dati prima dell'arrivo di Language Integrated Query.

Programma di esempio

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;

In che modo questa tecnologia ti aiuterà nella crescita della carriera?

È un motore di ricerca che aiuta a semplificare i flussi di lavoro dei dati. Aiuterà nella crescita della carriera in modo ben orientato. Supporta l'intero team con cui è facile lavorare e riduce le rilavorazioni e mantiene il progetto nei tempi previsti e nel budget previsto.

Conclusione

Hai letto bene come LINQ varia e migliora su ADO.NET. Inoltre, aiuta a risparmiare tempo. In definitiva, hai saputo come utilizzare le query integrate nella lingua per diversi tipi di origini dati. In questo articolo, abbiamo appreso il processo di lavoro della query integrata nel linguaggio e come usarlo. Spero che questo articolo ti abbia aiutato.

Articoli consigliati

Questa è una guida a What is LINQ ?. Qui discutiamo la definizione, i vantaggi e l'uso insieme al programma di esempio e all'ambito. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. MongoDB GUI Tools
  2. Che cos'è Dropbox?
  3. Che cos'è Laravel?
  4. Cosa è StringBuilder in C #

Categoria: