Partager via


LinqDataSource.StoreOriginalValuesInViewState Propriété

Définition

Obtient ou définit une valeur qui indique si les données de la source de données doivent être stockées dans l'état d'affichage pour s'assurer que les données n'ont pas été modifiées par un autre processus avant leur mise à jour ou leur suppression.

public:
 property bool StoreOriginalValuesInViewState { bool get(); void set(bool value); };
public bool StoreOriginalValuesInViewState { get; set; }
member this.StoreOriginalValuesInViewState : bool with get, set
Public Property StoreOriginalValuesInViewState As Boolean

Valeur de propriété

Boolean

true si les valeurs doivent être stockées dans l'état d'affichage ; sinon, false. La valeur par défaut est true.

Remarques

Par défaut, lorsque des opérations de mise à jour et de suppression ont été activées, le LinqDataSource contrôle stocke les valeurs d’origine de tous les enregistrements dans l’état d’affichage. Le LinqDataSource contrôle stocke les valeurs de toutes les clés primaires et toutes les propriétés non marquées dans UpdateCheck.Never l’attribut Column . Vous définissez la UpdateCheck propriété de l’attribut Column dans le Concepteur O/R.

Avant LINQ to SQL met à jour ou supprime des données, elle vérifie les valeurs dans l’état d’affichage par rapport aux valeurs actuelles de la source de données. Si les valeurs ne correspondent pas, l’enregistrement de source de données a changé. Dans ce cas, LINQ to SQL lève une exception et ne poursuit pas l’opération de mise à jour ou de suppression. Pour plus d’informations sur LINQ to SQL, consultez LINQ to SQL.

Le stockage des valeurs d’origine dans l’état d’affichage peut entraîner une taille de page inutilement volumineuse et peut exposer des données sensibles à un utilisateur malveillant. Vous pouvez désactiver le stockage de valeurs dans l’état d’affichage en définissant la StoreOriginalValuesInViewState propriété sur false. Si vous effectuez cette opération, vous devez fournir votre propre moyen de vous assurer que les données n’ont pas changé. Si vous définissez la StoreOriginalValuesInViewState propriété falsesur , les valeurs d’origine ne sont pas conservées dans l’état d’affichage du contrôle lié aux données. Dans ce cas, LINQ to SQL ne peut pas vérifier l’intégrité des données. LINQ to SQL lève une exception qui indique un conflit de données même si les données de la source de données n’ont pas réellement changé.

Si la source de données sous-jacente contient un champ d’horodatage qui est automatiquement mis à jour lors d’une mise à jour, vous pouvez stocker uniquement cette valeur dans l’état d’affichage. Dans ce cas, la propriété timestamp dans la classe d’entité est définie IsVersion=true sur et toutes les propriétés sont définies sur UpdateCheck.Never. Étant donné qu’un champ d’horodatage est automatiquement mis à jour par la base de données chaque fois que ces données dans cet enregistrement changent, LINQ to SQL détermine à partir de cette valeur si les données ont changé. Cela permet de réduire la taille de l’état d’affichage et aucune donnée sensible n’est exposée. LINQ to SQL vérifie la cohérence des données en comparant la valeur d’horodatage dans l’état d’affichage à la valeur d’horodatage dans la base de données. Pour plus d’informations, consultez Procédure pas à pas : Utilisation d’un horodatage avec le contrôle LinqDataSource pour vérifier l’intégrité des données.

S’applique à

Voir aussi