Skip to main content

Cos'è una query integrata linguistica?

La query integrata del linguaggio (LINQ) fornisce la possibilità di integrare perfettamente la sintassi della query dichiarativa in linguaggi imperativi, principalmente C# e VB.NET.Lo sviluppo di LINQ ha risolto i problemi che gli sviluppatori hanno lavorato in ambienti orientati agli oggetti riscontrati durante l'esecuzione di query.È stato introdotto come parte di Microsoft .NET Framework versione 3.5 nel novembre 2007 e in Visual Studio Codename Orcas.

Prima della creazione di query integrate linguistiche, i linguaggi .NET non avevano modo nativo per interrogare i database relazionali o i documenti XML.Gli sviluppatori che scrivono in queste lingue dovevano incorporare rispettivamente SQL o XQuery come stringhe e mappare manualmente i dati risultanti su oggetti .NET.Le stringhe di query e mappature incorporate non potevano essere convalidate dai compilatori .NET, consentendo di scoprire potenziali errori in fase di esecuzione.

Un altro problema che gli sviluppatori hanno affrontato prima della query integrata in lingua erano che i linguaggi .NET avevano solo la sintassi orientato all'obiettivo per le raccolte di query di.Oggetti netti.In genere, lo sviluppatore iterizzerebbe una raccolta di fonti intera, costruendo nuove raccolte di risultati basate su criteri di ricerca.Lo sviluppatore potrebbe anche trasformare i dati durante la creazione delle raccolte di risultati.Questo approccio era ingombrante;Una semplice query selezionata scritta in C# o VB richiederebbe almeno cinque righe di codice, mentre la stessa query richiederebbe una riga di codice in un linguaggio di query.

Le sfide della query all'interno di un ambiente orientato agli oggetti hanno dato a Microsoft l'impulsoCrea Linq.LINQ fornisce una sintassi delle query che ricorda SQL da utilizzare in linea con C# o VB, completa di controllo del tipo statico.Quando si eseguono la query di raccolte .NET, invece di utilizzare loop nidificati, gli sviluppatori possono utilizzare la sintassi LINQ per selezionare gli elementi e trasformare i dati.Tra gli altri vantaggi, ciò si traduce in meno righe di codice rispetto alla sintassi puramente orientata agli oggetti.

Quando si accede a fonti di dati esterne, LINQ e i componenti di supporto rimuovono la necessità di linguaggi di query incorporati e mappature dei dati all'interno di una lingua .NET stesso.Per eseguire la mappatura dei dati, LINQ dipende dai componenti chiamati provider LINQ.Linq-to-Objects è il provider di azioni che consente a LINQ di accedere alle raccolte .NET.Allo stesso modo, ci sono fornitori per accedere a database relazionali e documenti XML.La maggior parte di questi fornitori sono componenti di terze parti non inclusi nel framework .NET.Indipendentemente dal provider utilizzato, tutte le query utilizzano la stessa sintassi LINQ.

tra la sintassi della query integrata del linguaggio e i provider è una libreria di operatori di query aggiunti al framework .NET come parte delle strutture LINQ.Questi operatori svolgono attività come filtraggio, ordinamento, operazioni di teoria degli set e aggregazione.Poiché questi operatori fanno parte del framework .NET, possono anche essere utilizzati senza LINQ se lo sviluppatore sceglie così.