LinqDataSource.StoreOriginalValuesInViewState Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que indica si los datos del origen de datos deberían almacenarse en el estado de vista para asegurarse de que otro proceso no ha cambiado los datos antes de actualizarlos o eliminarlos.
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
Valor de propiedad
true
si los valores van a almacenarse en el estado de vista; de lo contrario, false
. El valor predeterminado es true
.
Comentarios
De forma predeterminada, cuando se han habilitado las operaciones de actualización y eliminación, el LinqDataSource control almacena los valores originales de todos los registros en estado de vista. El LinqDataSource control almacena los valores de todas las claves principales y todas las propiedades no marcadas con UpdateCheck.Never
en el Column
atributo . La propiedad del Column
atributo se establece UpdateCheck
en el Diseñador de O/R.
Antes de LINQ to SQL actualiza o elimina datos, comprueba los valores en estado de vista con los valores actuales del origen de datos. Si los valores no coinciden, el registro del origen de datos ha cambiado. En ese caso, LINQ to SQL produce una excepción y no continúa con la operación de actualización o eliminación. Para obtener más información sobre LINQ to SQL, vea LINQ to SQL.
Almacenar los valores originales en estado de vista puede hacer que el tamaño de página sea innecesariamente grande y puede exponer datos confidenciales a un usuario malintencionado. Puede deshabilitar el almacenamiento de valores en estado de vista estableciendo la StoreOriginalValuesInViewState propiedad false
en . Si lo hace, debe proporcionar su propia manera de asegurarse de que los datos no han cambiado. Si establece la StoreOriginalValuesInViewState propiedad false
en , los valores originales no se conservan en el estado de vista del control enlazado a datos. En ese caso, LINQ to SQL no puede comprobar la integridad de los datos. LINQ to SQL producirá una excepción que indica un conflicto de datos incluso si los datos del origen de datos no han cambiado realmente.
Si el origen de datos subyacente contiene un campo de marca de tiempo que se actualiza automáticamente durante una actualización, solo puede almacenar ese valor en estado de vista. En ese caso, la propiedad timestamp de la clase de entidad se establece IsVersion=true
en y todas las propiedades se establecen en UpdateCheck.Never
. Dado que la base de datos actualiza automáticamente un campo de marca de tiempo cada vez que cambian los datos de ese registro, LINQ to SQL determina a partir de ese valor si los datos han cambiado. Esto ayuda a reducir el tamaño del estado de vista y no se expone ningún dato confidencial. LINQ to SQL comprobará la coherencia de los datos comparando el valor de marca de tiempo en estado de vista con el valor de marca de tiempo de la base de datos. Para obtener más información, vea Tutorial: Usar una marca de tiempo con el control LinqDataSource para comprobar la integridad de los datos.