LinqDataSource.StoreOriginalValuesInViewState Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 qu’elles ne soient mises à jour ou supprimées.
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é
true si les valeurs seront 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 avec UpdateCheck.Never dans l’attribut Column . Vous définissez la UpdateCheck propriété de l’attribut Column dans le Concepteur O/R.
Avant de mettre à jour ou de supprimer des données LINQ to SQL, 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 la 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 importante et exposer des données sensibles à un utilisateur malveillant. Vous pouvez désactiver le stockage des 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 automatiquement mis à jour pendant une mise à jour, vous ne pouvez stocker que 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 UpdateCheck.Neversur . É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 timestamp 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.