Cos'è una query integrata di lingua?
Query Integrated Language (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 nell'ambito della versione 3.5 Microsoft® .NET Framework nel novembre 2007 e in Visual Studio® Codename "ORCAS".
Prima della creazione di query integrate linguistiche, i linguaggi .NET non avevano alcun 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 e le mappature di query incorporate non potevano essere validate dai compilatori .NET, consentendo di scoprire potenziali errori in fase di esecuzione.
Un altro problema che gli sviluppatori affrontavano prima della query integrata della lingua erano che i linguaggi .NET avevano solo obiettato la sintassi orientata alle raccolte di query di .NET OB OBjects. 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 di interrogare all'interno di un ambiente orientato agli oggetti hanno dato a Microsoft l'impulso di creare 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 D esternoFonti ATA, LINQ e componenti di supporto rimuovono la necessità di linguaggi di query e mapping di dati in un linguaggio .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ì.