Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Language-Integrated Query (LINQ) semplifica l'accesso alle informazioni sul database ed esegue query.
Nell'esempio seguente viene illustrato come creare una nuova applicazione che esegue query su un database di SQL Server. Il campione conteggia, somma e calcola la media dei risultati usando le clausole Aggregate e Group By. Per altre informazioni, vedere Clausola di aggregazione e clausola Group By.
Gli esempi in questo articolo usano il database di esempio Northwind. Per ottenere il database, vedere Scaricare i database di esempio.
Annotazioni
Il computer potrebbe visualizzare nomi o percorsi diversi per alcuni degli elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio disponibile e le impostazioni usate determinano questi elementi. Per altre informazioni, vedere Personalizzazione dell'IDE.
Per creare una connessione a un database
In Visual Studio, apri Esplora server /Esplora database, facendo clic su Esplora server /Esplora database nel menu Visualizza .
Fare clic con il pulsante destro del mouse su Connessioni Dati in Esplora Server /Esplora Database e quindi scegliere Aggiungi Connessione .
Specificare una connessione valida al database di esempio Northwind.
Per aggiungere un progetto contenente un file LINQ to SQL
In Visual Studio, nel menu File, punta a Nuovo e quindi fai clic su Progetto. Selezionare Visual Basic Windows Form Application come tipo di progetto.
Nel menu Progetto , fare clic su Aggiungi Nuovo Elemento. Selezionare il modello di elemento LINQ to SQL Classes.
Denominare il file
northwind.dbml. Fare clic su Aggiungi. Il Progettista relazionale di oggetti (O/R Designer) viene aperto per il file northwind.dbml.
Per aggiungere tabelle da interrogare nella Progettazione O/R
Nel Esplora Server/Esplora Database, espandi la connessione al database Northwind. Espandere la cartella Tabelle .
Se la finestra di progettazione O/R è stata chiusa, è possibile riaprirla facendo doppio clic sul file northwind.dbml aggiunto in precedenza.
Fare clic sulla tabella Customers e trascinarla nel riquadro sinistro della finestra di progettazione. Fare clic sulla tabella Orders e trascinarla nel riquadro sinistro della finestra di progettazione.
Il designer crea nuovi oggetti
CustomereOrderper il tuo progetto. Si noti che la finestra di progettazione rileva automaticamente le relazioni tra le tabelle e crea proprietà figlio per gli oggetti correlati. Ad esempio, IntelliSense mostrerà che l'oggettoCustomerha una proprietàOrdersper tutti gli ordini correlati al cliente.Salvare le modifiche e chiudere la finestra di progettazione.
Salva il tuo progetto.
Per aggiungere codice per eseguire query sul database e visualizzare i risultati
Trascina un controllo sul Windows Form predefinito per il tuo progetto, Form1, dalla casella degli strumenti DataGridView.
Fare doppio clic su Form1 per aggiungere codice all'evento
Loaddel modulo.Quando sono state aggiunte tabelle alla finestra di progettazione O/R, la finestra di progettazione ha aggiunto un oggetto DataContext per il progetto. Questo oggetto contiene il codice necessario per accedere a tali tabelle e per accedere a singoli oggetti e raccolte per ogni tabella. L'oggetto DataContext del tuo progetto è chiamato in base al nome del tuo file .dbml. Per questo progetto, l'oggetto DataContext è denominato
northwindDataContext.È possibile creare un'istanza del DataContext nel codice ed eseguire query sulle tabelle specificate da O/R Designer.
Aggiungere il codice seguente all'evento
Loadper eseguire una query sulle tabelle esposte come proprietà di DataContext e contare, sommare e calcolare la media dei risultati. Nell'esempio viene utilizzata laAggregateclausola per eseguire una query per un singolo risultato e laGroup Byclausola per visualizzare una media per i risultati raggruppati.Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers Where cust.City = "London" Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers Where cust.City = "London" Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers Where cust.Country = "Venezuela" Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers Group By cust.City Into Average(cust.Orders.Count) Order By Average DataGridView1.DataSource = averageCustomersByCity 'Another way to grab the count and sum londonCustomerCount = (From cust in db.Customers Where cust.City = "London").Count() venezuelaTotalOrders = (From cust in db.Customers Where cust.Country = "Venezuela" Select cust.Orders).Sum()Premere F5 per eseguire il progetto e visualizzare i risultati.