Servizi Web e Entity Data Model (scenari applicativi)
Entity Data Model (EDM) fornisce un livello concettuale di astrazione sull'origine dati. Object Services consente di materializzare le entità definite nel livello concettuale in oggetti CLR che possono essere utilizzati in applicazioni client, ad esempio applicazioni Windows Forms e applicazioni ASP.NET. Entity Framework supporta la serializzazione di oggetti entità in formati che consentono lo scambio remoto e basato su messaggi di tali oggetti, ad esempio servizi Web e WCF (Windows Communication Foundation). Gli oggetti possono essere serializzati utilizzando la serializzazione binaria, la serializzazione XML e la serializzazione del contratto WCF per consentirne il trasporto utilizzando un flusso binario o protocolli basati su messaggi. Per ulteriori informazioni, vedere Serializzazione di oggetti (Entity Framework). Gli oggetti possono anche essere ricevuti da un messaggio o da un flusso, deserializzati e connessi a un contesto dell'oggetto. Per ulteriori informazioni, vedere Connessione di oggetti (Entity Framework).
ADO.NET Data Services consente inoltre di fornire accesso dinamico ai dati EDM in un formato XML che può essere utilizzato dalle applicazioni. L'accesso ai dati delle entità avviene tramite azioni HTTP REST (Representational State Transfer) standard, ad esempio GET, PUT e POST. Per ulteriori informazioni, vedere Framework di ADO.NET Data Services.
Gli elementi seguenti devono essere presi in considerazione in caso di creazione di servizi Web o di servizi WCF che utilizzano Entity Framework:
La serializzazione grafica completa è supportata per la serializzazione binaria e la serializzazione DataContract. Tramite la serializzazione XML, gli oggetti correlati non vengono serializzati.
Gli oggetti vengono sempre deserializzati nello stato Detached. Potrebbe essere necessario connettere o aggiungere l'oggetto a ObjectContext oppure si potrebbe desiderare di applicare le modifiche alle proprietà solo all'oggetto originale. Per ulteriori informazioni, vedere Connessione di oggetti (Entity Framework).
Sono consigliati i servizi senza stato. I servizi devono essere progettati in modo tale che un contesto dell'oggetto venga mantenuto solo per la durata di una richiesta o di una risposta. Il modello di scambio dei messaggi deve includere informazioni sufficienti per consentire di applicare le modifiche senza che sia necessario rendere persistenti gli oggetti o eseguire nuovamente una query sull'origine dati per recuperare l'oggetto originale. Un servizio che consente a un client di aggiornare gli oggetti deve ad esempio richiedere che l'oggetto aggiornato venga restituito insieme all'oggetto originale. In questo modo, le modifiche possono essere applicate all'oggetto originale dal servizio Web utilizzando il metodo ApplyPropertyChanges senza che sia necessario recuperare l'oggetto originale dal database o salvarlo in modo permanente in memoria. Per ulteriori informazioni, vedere Procedura: applicare le modifiche apportate a un oggetto disconnesso (Entity Framework).