Procedura: aggiungere un oggetto come origine dati progetto (Entity Framework)

È possibile creare origini dati basate sugli oggetti in un'applicazione Visual Studio. Dopo avere definito un tipo di entità come origine dati in un progetto, è possibile creare dei form che visualizzino i dati dell'entità tramite il trascinamento di elementi dalla finestra Origini dati nei form. Questi elementi diventano controlli nei form associati all'origine dati. Per ulteriori informazioni, vedere Associazione di oggetti ai controlli (Entity Framework).

In questo argomento verrà creata un'origine dati per il tipo SalesOrderHeader nel modello Sales di Adventure Works. Tale origine dati verrà utilizzata per creare un Windows Form con controlli associati ai dati dell'entità. Per completare le procedure, è necessario avere già aggiunto il modello Sales di AdventureWorks al progetto e avere configurato il progetto per l'utilizzo di Entity Framework . A tale scopo, completare le procedure descritte in Procedura: utilizzare la procedura guidata Entity Data Model (Entity Framework).

Per creare un'origine dati basata sui tipi SalesOrderHeader

  1. Se è stato aggiunto recentemente l'elemento Entity Data Model, compilare il progetto.

  2. Scegliere Aggiungi nuova origine dati dal menu Dati.

  3. Nella pagina Seleziona un tipo di origine dati selezionare Oggetto.

  4. Nella pagina Seleziona l'oggetto da associare espandere il nodo del progetto, espandere il nodo dello spazio dei nomi e selezionare il tipo SalesOrderHeader nella visualizzazione struttura ad albero.

  5. Scegliere Fine.

    L'origine dati SalesOrderHeader viene aggiunta alla finestra Origini dati.

Per aggiungere controlli associati alle origini dati a un Windows Form

  1. Nella finestra Origini dati espandere il nodo SalesOrderHeader.

  2. Trascinare una o più proprietà dal nodo SalesOrderHeader nel form.

    Verranno creati i controlli salesOrderHeaderBindingSource e salesOrderHeaderBindingNavigator nel form. Nel form viene anche creato un controllo con associazione a dati per ogni proprietà, accompagnato da un controllo etichetta con un titolo corretto.

  3. Trascinare la proprietà di navigazione SalesOrderDetail nel form.

  4. Verrà creato il controllo salesOrderDetailBindingSource con la proprietà DataSource impostata su salesOrderHeaderBindingSource e la proprietà DataMember impostata su SalesOrderDetail. Nel form verrà inoltre creato il controllo con associazione a dati salesOrderDetailDataGridView, accompagnato da un controllo etichetta con il titolo appropriato.

Per associare l'origine dati al risultato di una query di oggetto

  1. Aprire la tabella codici per il form e aggiungere le istruzioni using seguenti (Imports in Visual Basic):

    using System.Data.Objects;
    
  2. Nella classe parziale che definisce il form aggiungere il codice seguente per creare un'istanza di ObjectContext e definire la costante customerID.

    private AdventureWorksEntities context;
    private const int customerId = 277;
    
  3. Nella finestra di progettazione dei form fare doppio clic sul form.

    Verrà visualizzata la tabella codici per il form e verrà creato il metodo che gestisce l'evento Load per il form.

  4. Nel gestore di eventi Load copiare e incollare il codice riportato di seguito.

    // Initialize the object context.
    context = new AdventureWorksEntities();
    
    try
    {
        // Create a query for orders and related items.
        var orderQuery = context.SalesOrderHeaders
            .Where("it.CustomerID = @customerId",
            new ObjectParameter("customerId", customerId))
            .Include("SalesOrderDetails");
    
        // Set the data source of the binding source to the ObjectResult 
        // returned when the query is executed.
        salesOrderHeaderBindingSource.DataSource = 
            orderQuery.Execute(MergeOption.AppendOnly);
    }
    catch (EntitySqlException ex)
    {
        MessageBox.Show(ex.Message);
    }
    

    Tale codice esegue una query che restituisce una raccolta di oggetti SalesOrderHeader con gli oggetti SalesOrderDetail correlati per uno specifico cliente e associa la raccolta di oggetti SalesOrderHeader all'oggetto salesOrderHeaderBindingSource.

Vedere anche

Attività

Procedura: associare oggetti a controlli Windows Presentation Foundation (Entity Framework)
Procedura: associare oggetti a controlli Windows Form (Entity Framework)

Concetti

Associazione di oggetti ai controlli (Entity Framework)