Condividi tramite


Utilizzo di LINQ in Visual Basic Express

Aggiornamento: novembre 2007

Le applicazioni spesso utilizzano dati in database SQL o documenti XML. Gli sviluppatori di solito devono apprendere un secondo linguaggio di programmazione, ad esempio SQL o Xquery, per gestire questi dati. LINQ (Language-Integrated Query) offre la funzionalità di query nel linguaggio Visual Basic stesso in modo che non sia necessario imparare un linguaggio di query completamente diverso. Anziché imparare un linguaggio di query separato, ora è possibile utilizzare le conoscenze di Visual Basic, oltre ad alcune parole chiave e concetti aggiuntivi, per eseguire una query su database SQL, dataset ADO.NET, documenti XML e qualsiasi classe di insiemi .NET Framework che implementi l'interfaccia IEnumerable.

Vantaggi dell'utilizzo di LINQ

  • Sintassi comune per la scrittura di query

  • Controllo degli errori di sintassi in fase di compilazione e indipendenza dai tipi

  • Supporto del debugger migliorato

  • Supporto IntelliSense

  • Possibilità di utilizzare direttamente gli elementi XML anziché creare un documento XML contenitore, come richiesto con W3C DOM (Document Object Model).

  • Modifica dei documenti XML in memoria potente e ancora più semplice da utilizzare rispetto a XPath o XQuery.

  • Potenti funzionalità di filtro, ordinamento e raggruppamento

  • Modello coerente per l'utilizzo dei dati con tutti i diversi tipi di origini e formati dati

Scrittura di query LINQ

La struttura di base di una query di LINQ è identica se si utilizzano dataset ADO.NET, database SQL, insiemi .NET Framework o documenti XML. Un'espressione di query inizia con la clausola From, seguita da clausole di query quali Where e Select. L'espressione completa viene archiviata in una variabile di query che può essere eseguita o modificata un numero illimitato di volte. La sintassi dell'espressione di query è analoga alla sintassi di SQL. Ad esempio, è possibile scrivere una query LINQ che restituisca tutti gli studenti presenti in un database che hanno scienze come materia di specializzazione, utilizzando la sintassi seguente:

Dim StudentQuery = From student in studentApp.students 
    Where student.Major = "Science" _
    Select student

Per ulteriori informazioni, vedere Query (Visual Basic) e Scrittura della prima query LINQ (Visual Basic).

Una query LINQ comprende tre tappe di base. Ottenere l'origine dati, definire l'espressione di query e quindi eseguire la query. Per ulteriori informazioni, vedere la classe Scrittura della prima query LINQ (Visual Basic).

LINQ to Objects

Il termine LINQ to Objects si riferisce all'utilizzo di LINQ per eseguire una query su strutture dei dati in memoria che supportano IEnumerable. Per ulteriori informazioni, vedere LINQ to Objects.

LINQ to SQL

Utilizzare LINQ to SQL per accedere ai database SQL Server e SQL Server Express tramite un livello dell'oggetto fortemente tipizzato creato utilizzando O/R Designer.

È possibile utilizzare Progettazione relazionale oggetti per eseguire il mapping delle classi LINQ to SQL alle tabelle di un database e scrivere query LINQ per associare dati ai controlli dell'applicazione. Ad esempio, la seguente query LINQ associa i risultati di una query LINQ (tutti i clienti degli Stati Uniti) a un'origine di associazione di un controllo DataGridView.

Dim CustomersQuery = From customers in NorthwindSampleDataContext1.Customers _
    Where customers.Country = "US" _
    Select customers

CustomerBindingSource.DataSource = CustomersQuery

Per ulteriori informazioni, vedere LINQ to SQL, Cenni preliminari su Progettazione relazionale oggetti, Creazione di classi LINQ to SQL utilizzando O/R Designer e Utilizzo di LINQ per associare dati a controlli.

Nota:

O/R Designer non supporta attualmente i database di SQL Server Compact 3.5. Per informazioni su come ottenere SQL Server Express Edition, vedere la sezione relativa a come ottenere SQL Server Express Edition in Procedura: installare database di esempio.

Da LINQ a DataSet

Il DataSet viene utilizzato per associare i dati ai controlli di un'applicazione. Invece di connettersi direttamente a un database, è possibile utilizzare un DataSet per creare una cache non in linea di dati che possono includere sottoinsiemi di diverse origini dati, da utilizzare con un'applicazione. Quando l'applicazione viene portata in linea, è possibile aggiornare il database con le modifiche apportate al DataSet.

LINQ to Dataset rende l'esecuzione di una query sui dati memorizzati nella cache più veloce e semplice rispetto ai metodi di filtro e ordinamento disponibili in un DataSet. Per ulteriori informazioni, vedere LINQ to DataSet.

LINQ to XML

LINQ to XML consente di creare e modificare facilmente i documenti XML utilizzando le espressioni di query LINQ invece di dover imparare i linguaggi XPath o XQuery. LINQ to XML è una nuova API per XML in memoria che utilizza costrutti di programmazione moderni anziché il modello DOM (Document Object Model ) W3C. Per ulteriori informazioni, vedere Cenni preliminari su LINQ to XML in Visual Basic, Inclusione dell'XML direttamente nel codice: utilizzo dei valori letterali XML e Assi integrati nel linguaggio in Visual Basic (LINQ to XML).

Vedere anche

Concetti

Guida introduttiva (LINQ to SQL)

Altre risorse

Introduzione a LINQ in Visual Basic

Guida introduttiva (LINQ to DataSet)

Guida introduttiva (LINQ to XML)