Condividi tramite


Serializzazione delle entità con rilevamento automatico

In un'applicazione ADO.NET Entity Framework il rilevamento delle modifiche negli oggetti viene controllato da un contesto dell'oggetto. Tuttavia, quando occorre modificare oggetti in un altro livello in cui tale contesto non è disponibile, è necessario decidere come tenere traccia delle modifiche e come segnalare nuovamente quelle modifiche al contesto dell'oggetto. A partire da Entity Framework versione 4, le entità con rilevamento automatico consentono di tenere traccia delle modifiche in qualsiasi livello. Un'entità con rilevamento automatico è un'entità compilata da un modello del toolkit di trasformazione dei modelli di testo (T4) che consente di generare tipi di entità in grado di registrare modifiche alle proprietà scalari, complesse e di navigazione. In Visual Studio 2010 è disponibile il modello Generatore di entità con rilevamento automatico ADO.NET. Per ulteriori informazioni, vedere Procedura dettagliata: serializzazione di entità con rilevamento automatico (Entity Framework).

Questo esempio è disponibile nel sito Entity Framework Documentation Samples su MSDN Code Gallery.

Scenario

Nell'esempio viene illustrato il modo in cui un servizio WCF espone una serie di operazioni che consentono di restituire grafici di entità. Successivamente un'applicazione client modifica il grafico e inoltra le modifiche a un'operazione del servizio che convalida e salva gli aggiornamenti in un database utilizzando Entity Framework.

Prerequisiti

Prima di eseguire questo esempio, verificare che sia installato il software seguente:

  • Visual Studio 2010 con .NET Framework 4

  • Motore di database di SQL Server 2005 o 2008

    • Database di esempio School (incluso nell'esempio)

    • SQL Server Management Studio (facoltativo)

Compilazione dell'esempio

L'esempio STESchoolModelExample è costituito da 5 progetti:

  • Progetto libreria di classi STESchoolModel che contiene il modello basato su School e i modelli di entità con rilevamento automatico, inclusi il modello dei tipi di entità con rilevamento automatico e il modello System.Data.Objects.ObjectContext tipizzato.

  • Progetto libreria di classi STESchoolModelTypes che si collega al modello dei tipi di entità con rilevamento automatico contenuto nel progetto STESchoolModel.

  • Applicazione del servizio Windows Communication Foundation (WCF) STESchoolModelService che espone un set di operazioni che consentono di restituire grafici di entità e di applicare le modifiche apportate nel client al database.

  • Applicazioni client console STESchoolModelConsoleTest.

  • Applicazione client Windows Presentation Foundation (WPF) STESchoolModelWPFTest.

Utilizzare la procedura seguente per compilare l'esempio.

Per compilare l'applicazione STESchoolModelExample

  1. (Facoltativo) Se il database di esempio School non è presente nell'istanza di SQL Server, eseguire lo script CreateSchool.sql incluso nel progetto.

  2. Aprire il file della soluzione in Visual Studio.

  3. (Facoltativo) Se il database School è stato creato in un'istanza di SQL Server diversa dall'istanza predefinita nel computer locale, specificare l'istanza di SQL Server corretta modificando l'origine dati nella stringa di connessione nel file di configurazione dei progetti seguenti: STESchoolModelService, STESchoolModelConsoleTest, STESchoolModelWPFTest.

  4. Compilare la soluzione.

Esecuzione dell'esempio

Utilizzare la procedura seguente per eseguire l'esempio.

Per eseguire l'applicazione client

  1. Aggiornare il riferimento al servizio nei progetti client STESchoolModelWPFTest e STESchoolModelConsoleTest. Per aggiornare il riferimento, in Esplora soluzioni fare clic con il pulsante destro del mouse su ServiceReference1 nella cartella Riferimenti a servizi, quindi selezionare Aggiorna riferimento al servizio.

  2. Impostare STESchoolModelWPFTest o STESchoolModelConsoleTest come progetto di avvio.

  3. Eseguire l'applicazione. Se il client non è in grado di comunicare con il servizio a cui viene fatto riferimento, eseguire il passaggio successivo.

    1. Eliminare ServiceReference1 dal progetto client.

    2. Aggiungere nuovamente il riferimento al servizio. Per aggiungere un riferimento al servizio, in Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Riferimenti al servizio, quindi selezionare Aggiungi riferimento al servizio.

    3. Configurare il servizio. Poiché STESchoolModelService restituisce System.Collections.Generic.List, è necessario configurare il riferimento al servizio. Fare clic con il pulsante destro del mouse sul nome del servizio (ServiceReference1), quindi scegliere Configura riferimento al servizio.... Nella finestra di dialogo Configura riferimento al servizio selezionare il tipo System.Collections.Generic.List nell'elenco Tipo di raccolta.

    4. Eseguire l'applicazione.

Rimozione dell'esempio

Utilizzare la procedura seguente per rimuovere l'esempio STESchoolModelExample.

Per rimuovere l'applicazione STESchoolModelExample

  1. Eliminare la directory e il contenuto del progetto.

  2. (Facoltativo) Rimuovere il database School dall'istanza di SQL Server.

Vedere anche

Altre risorse

ADO.NET Entity Framework
Entity Data Model
Strumenti di ADO.NET
Associazione di oggetti ai controlli
Procedura dettagliata: serializzazione di entità con rilevamento automatico (Entity Framework)