Partager via


Fournisseur Entity Framework (WCF Data Services)

Comme Services de données WCF, ADO.NET Entity Framework est basé sur Entity Data Model qui est un type de modèle de relation d'entité. Entity Framework traduit des opérations en fonction de son implémentation d'Entity Data Model, le modèle conceptuel, en des opérations équivalentes sur une source de données. Cela fait d'Entity Framework un fournisseur idéal pour les services de données basés sur les données relationnelles, et toute base de données dont le fournisseur de données prend en charge Entity Framework peut être utilisée avec Services de données WCF. Pour une liste des sources de données prenant actuellement en charge Entity Framework, consultez Third-Party Providers for the Entity Framework (en anglais)

Dans un modèle conceptuel, le conteneur d'entités est la racine du service. Vous devez définir un modèle conceptuel dans Entity Framework avant que les données puissent être exposées par un service de données. Entity Framework comporte des outils qui génèrent automatiquement une couche objet basée sur le modèle conceptuel. La couche objet inclut les types d'entité et une classe de conteneur qui hérite de la classe ObjectContext. En général, la classe de conteneur comporte aussi les propriétés de jeu d'entités qui retournent une collection d'entités IQueryable<T> du type spécifié. Lorsque vous utilisez le fournisseur Entity Framework, vous devez fournir simplement cette classe de conteneur comme type DataService<T> à partir duquel votre service de données dérive, comme dans l'exemple suivant pour un service de données Northwind.

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

Pour plus d'informations, consultez Procédure : créer un service de données à l'aide d'une source de données ADO.NET Entity Framework (WCF Data Services).

La fonctionnalité Code First d'Entity Framework a été introduite dans Entity Framework 4.1. Lorsque vous utilisez Code First pour définir votre modèle de données, vous devez définir une classe de contexte qui dérive de la classe DbContext au lieu de la classe ObjectContext. Une instance DbContext peut également être utilisée en tant que type de DataService<T> à partir duquel votre service de données dérive.

Services de données WCF prend en charge le modèle d'accès concurrentiel optimiste en vous permettant de définir un jeton d'accès concurrentiel pour une entité. Ce jeton d'accès concurrentiel, qui inclut une ou plusieurs propriétés de l'entité, est utilisé par le service de données pour déterminer si une modification a eu lieu dans les données demandées, mises à jour ou supprimées. Lorsque les valeurs du jeton obtenues de l'eTag dans la demande diffèrent des valeurs actuelles de l'entité, le service de données déclenche une exception. Pour indiquer qu'une propriété fait partie du jeton d'accès concurrentiel, vous devez appliquer l'attribut ConcurrencyMode="Fixed" dans le modèle de données défini par le fournisseur Entity Framework. Le jeton d'accès concurrentiel ne peut inclure aucune propriété de clé ou de navigation. Pour plus d'informations, consultez Mise à jour du service de données (WCF Data Services).

Pour en savoir plus sur Entity Framework, consultez Entity Framework Overview.

Voir aussi

Concepts

Fournisseurs de services de données (WCF Data Services)

Fournisseur de réflexion (WCF Data Services)

Entity Data Model