Mise à jour des données (EntityDataSource)
Mise à jour : novembre 2007
Vous pouvez utiliser le contrôle EntityDataSource pour soumettre des mises à jour à la source de données depuis des contrôles serveur Web liés aux données tels que les contrôles GridView, DetailsView ou FormView. Le contrôle EntityDataSource utilise une instance de la classe ObjectContext pour soumettre les valeurs mises à jour à la base de données.
Considérations sur la mise à jour des données
Les considérations suivantes s'appliquent lorsque vous utilisez le contrôle EntityDataSource pour soumettre des mises à jour, des insertions et des suppressions à la source de données :
Pour mettre à jour des données, au moins l'une des propriétés EnableInserts(), EnableUpdates(), ou EnableDeletes() doit avoir la valeur true.
Lorsque vous mettez à jour la source de données en utilisant le contrôle EntityDataSource, vous pouvez uniquement envoyer des mises à jour pour un objet à la fois.
Lorsque les mises à jour sont activées, vous ne pouvez pas utiliser les propriétés CommandText, Select et GroupBy du contrôle EntityDataSource.
Vous pouvez soumettre des mises à jour à la source de données de l'extérieur d'un contrôle lié aux données en ajoutant, en modifiant, et en supprimant des objets dans un ObjectContext. Pour plus d'informations, consultez Comment : ajouter, modifier et supprimer des objets (Entity Framework). Après avoir appelé la méthode SaveChanges pour valider les modifications du ObjectContext dans la source de données, faites appel la méthode DataBind sur le contrôle lié aux données pour mettre à jour le contrôle avec les données les plus récentes de la source de données.
Stockage de données d'objet dans l'état d'affichage
Pour faire le suivi des modifications lorsque les opérations de mise à jour sont activées, le contrôle EntityDataSource doit stocker des informations à propos des valeurs d'origine des propriétés des objets chargés dans l'état d'affichage pour la page. En conservant les valeurs d'origine des propriétés d'objet dans les requêtes HTTP, Object Services gère l'accès concurrentiel en comparant les valeurs d'origine et les valeurs actuelles. Pour plus d'informations sur la façon dont Object Services gère l'accès concurrentiel, consultez Suivi des modifications et résolution d'identité (Entity Framework).
Stocker ces informations nécessaires dans l'état d'affichage augmentera la taille de la page. Vous pouvez désactiver le stockage de valeurs dans l'état d'affichage en affectant false à la propriété StoreOriginalValuesInViewState. Dans ce cas, Object Services ne peut pas faire le suivi de l'accès concurrentiel dans les objets mis à jour, et vous devez implémenter vos propres contrôles d'accès concurrentiel. Ces contrôles doivent garantir que les mises à jour apportées au contrôle lié aux données n'entrent pas en conflit avec les modifications apportées à la source de données. Pour plus d'informations, consultez Enregistrement des modifications et gestion de l'accès concurrentiel (Entity Framework).
Voir aussi
Concepts
Configuration du contrôle EntityDataSource
Gestion du cycle de vie du contexte de l'objet (EntityDataSource)