Condividi tramite


Provider di Entity Framework (WCF Data Services)

Analogamente a WCF Data Services, ADO.NET Entity Framework è basato su Entity Data Model, un tipo di modello entità-relazione. Entity Framework traduce le operazioni eseguite sulla relativa implementazione di Entity Data Model (modello concettuale), in operazioni equivalenti su un'origine dati. Ciò rende Entity Framework il provider ideale per i servizi dati basati su dati relazionali, consentendo inoltre l'utilizzo di WCF Data Services da parte di qualsiasi database che disponga di un provider di dati con supporto per Entity Framework. Per un elenco delle origini dati che supportano attualmente Entity Framework, vedere Provider di terze parti per Entity Framework.

In un modello concettuale il contenitore di entità rappresenta la radice del servizio. È necessario definire un modello concettuale in Entity Framework prima che i dati possano essere esposti da un servizio dati. In Entity Framework sono disponibili strumenti che consentono di generare automaticamente un livello oggetti in base al modello concettuale. Il livello oggetti include i tipi di entità e una classe contenitore che ereditano dalla classe ObjectContext. La classe contenitore contiene in genere anche le proprietà del set di entità che restituiscono una raccolta IQueryable<T> di entità del tipo specificato. Quando si utilizza il provider di Entity Framework, è possibile fornire semplicemente questa classe contenitore come tipo di DataService<T> da cui deriva il servizio dati, come illustrato nell'esempio seguente per un servizio dati Northwind.

Public Class Northwind
    Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>

Per ulteriori informazioni, vedere Procedura: creare un servizio dati utilizzando un'origine dati ADO.NET Entity Framework (WCF Data Services).

La funzionalità Code First è stata introdotta in Entity Framework 4.1. Quando si utilizza la funzionalità Code First per definire il modello di dati, si definisce una classe del contesto che deriva dalla classe DbContext anziché dalla classe ObjectContext. È inoltre possibile utilizzare un'istanza di DbContext come tipo di DataService<T> da cui deriva il servizio dati.

WCF Data Services supporta il modello di concorrenza ottimistica consentendo la definizione di un token di concorrenza per un'entità. Questo token di concorrenza, che include una o più proprietà dell'entità, viene utilizzato dal servizio dati per determinare se si è verificata una modifica nei dati richiesti, aggiornati o eliminati. Quando i valori del token ottenuti dal valore eTag nella richiesta sono diversi da quelli correnti dell'entità, viene generata un'eccezione dal servizio dati. Per indicare che una proprietà fa parte del token di concorrenza, è necessario applicare l'attributo ConcurrencyMode="Fixed" nel modello di dati definito dal provider di Entity Framework. Il token di concorrenza non può includere una proprietà della chiave o una proprietà di navigazione. Per ulteriori informazioni, vedere Aggiornamento del servizio dati (WCF Data Services).

Per ulteriori informazioni su Entity Framework, vedere Entity Framework Overview.

Vedere anche

Concetti

Provider di servizi dati (WCF Data Services)

Provider di reflection (WCF Data Services)

Entity Data Model