Condividi tramite


Procedura dettagliata: creare il modello Sales di AdventureWorks ed eseguire una query (C#)

In questa procedura dettagliata viene descritto uno scenario LINQ to Entities end-to-end di base con un livello di complessità minimo. Viene creato il modello Sales di AdventureWorks, che contiene le entità e le associazioni basate sulle tabelle Address, Contact, Product, SalesOrderHeader e SalesOrderDetail del database di esempio AdventureWorks. Viene quindi creata una query semplice che consente di elencare tutti i prodotti rossi presenti nell'inventario di AdventureWorks.

Prerequisiti

Per questa procedura dettagliata è necessario il database di esempio AdventureWorks. Se questo database non è disponibile nel computer di sviluppo, è possibile scaricarlo dalla pagina Microsoft SQL Server Community & Samples nel sito CodePlex.

Cenni preliminari

Questa procedura dettagliata è costituita da quattro attività principali:

  • Creazione di una soluzione LINQ to Entities in Visual Studio 2008.

  • Creazione del modello Sales di AdventureWorks.

  • Creazione di una query semplice da eseguire sul modello Sales.

  • Esecuzione della query e analisi dei risultati.

Creazione di una soluzione LINQ to Entities

In questa prima attività viene creata una soluzione Visual Studio contenente i riferimenti necessari per compilare ed eseguire un progetto LINQ to Entities.

Per creare una soluzione LINQ to Entities C#

  1. Scegliere Nuovo dal menu File di Visual Studio, quindi fare clic su Progetto.

  2. Nella finestra di dialogo Nuovo progetto selezionare Visual C# nel riquadro Tipi progetto.

  3. Scegliere .NET Framework 3.5 dal menu a discesa.

  4. Nel riquadro Modelli fare clic su Applicazione console.

  5. Nella casella Nome digitare LinqToEntitesConsoleApp.

  6. Nella casella Percorso selezionare un percorso per i file di progetto, quindi scegliere OK.

  7. Scegliere Aggiungi riferimento dal menu Progetto, fare clic sulla scheda .NET, fare clic sull'assembly System.Data.Entity, quindi scegliere OK.

  8. Aggiungere una direttiva using per lo spazio dei nomi System.Data.Objects al file di codice sorgente.

Creazione del modello Sales di AdventureWorks

In questa attività viene creato il modello Sales di AdventureWorks utilizzando la procedura guidata Entity Data Model e viene fatto riferimento al modello nel progetto.

Per creare il modello Sales di AdventureWorks e farvi riferimento

  1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  2. Nel riquadro Modelli della finestra di dialogo Aggiungi nuovo elemento selezionare ADO.NET Entity Data Model. Assegnare al modello il nome AdventureWorksSalesModel, quindi scegliere Aggiungi.

  3. Nella finestra di dialogo Scegli contenuto Model selezionare Genera da database, quindi scegliere Avanti.

  4. Nella finestra Scegliere la connessione dati selezionare una connessione di AdventureWorks esistente nell'elenco oppure creare una nuova connessione a un'istanza di SQL Server che includa il database di esempio AdventureWorks.

  5. Salvare le impostazioni di connessione dell'entità in App.Config come AdventureWorksEntities, quindi scegliere Avanti.

  6. Nella finestra di dialogo Scegli oggetti di database deselezionare tutti gli oggetti, espandere Tabelle e selezionare gli oggetti tabella seguenti:

    • Address (Person)

    • Contact (Person)

    • Product (Production)

    • SalesOrderDetail (Sales)

    • SalesOrderHeader (Sales)

  7. Assegnare allo spazio dei nomi del modello il nome AdventureSalesWorksModel, quindi scegliere Fine.

  8. Verrà aperta la visualizzazione Browser modello in cui sono presenti le entità del modello Sales di AdventureWorks. Fare clic sul pulsante Salva e selezionare la scheda Program.cs per tornare al codice sorgente.

  9. Aggiungere un'istruzione using per AdventureWorksSalesModel al file di origine.

Creazione di una query semplice

In questo passaggio viene creata una query per individuare i prodotti rossi presenti nell'inventario di AdventureWorks. La variabile di query consente di archiviare i comandi di query solo se la query è progettata per restituire una sequenza di valori. L'esecuzione effettiva della query viene posticipata fino a quando non si scorre la variabile di query in un ciclo foreach. Questo approccio è noto come esecuzione posticipata. Per ulteriori informazioni, vedere Esecuzione di query.

Per creare una query semplice

  • Digitare o incollare il codice seguente nel metodo Main.
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities())
{
    ObjectQuery<Product> products = AWEntities.Product;

    IQueryable<Product> query =
        from product in products
        where product.Color == "Red"
        select product;

    foreach (Product product in query)
    {
        Console.WriteLine("Name: {0}", product.Name);
        Console.WriteLine("Product number: {0}", product.ProductNumber);
        Console.WriteLine("List price: ${0}", product.ListPrice);
        Console.WriteLine("");
    }
}

//Prevent the console window from closing.
Console.WriteLine("Hit Enter...");
Console.Read();

Esecuzione della query

In questo passaggio viene effettivamente eseguita la query. L'espressione di query creata nel passaggio precedente non viene valutata fino a quando i risultati non sono necessari. Quando si avvia l'iterazione foreach, la query viene eseguita nel modello Sales di AdventureWorks e i risultati vengono materializzati.

Per eseguire la query

  1. Premere F5 per eseguire l'applicazione in modalità di debug.

  2. I risultati della query verranno visualizzati nella finestra della console.

  3. Premere INVIO nella finestra della console per chiudere l'applicazione.

Vedere anche

Attività

Procedura: utilizzare la procedura guidata Entity Data Model (Entity Framework)

Concetti

Panoramica su LINQ to Entities