LinqDataSource.StoreOriginalValuesInViewState Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define um valor que indica se os dados da fonte de dados devem ser armazenados no estado de visualização para garantir que os dados não foram alterados por outro processo antes de serem atualizados ou eliminados.
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 Propriedade
true se os valores estiverem armazenados no estado de visualização; caso contrário, false. O valor predefinido é true.
Observações
Por defeito, quando as operações de atualização e eliminação estão ativadas, o LinqDataSource controlo armazena os valores originais de todos os registos no estado de visualização. O LinqDataSource controlo armazena valores para todas as chaves primárias e todas as propriedades não marcadas UpdateCheck.Never no Column atributo. Defines a UpdateCheck propriedade do Column atributo no Designer O/R.
Antes de o LINQ para SQL atualizar ou eliminar dados, verifica os valores no estado da visualização com os valores atuais na fonte de dados. Se os valores não coincidirem, o registo da fonte de dados mudou. Nesse caso, o LINQ para SQL lança uma exceção e não continua com a operação de atualização ou eliminação. Para mais informações sobre LINQ para SQL, veja LINQ para SQL.
Armazenar os valores originais no estado de visualização pode fazer com que o tamanho da página se torne desnecessariamente grande e expor dados sensíveis a um utilizador malicioso. Pode desativar o armazenamento de valores no estado da visualização definindo a StoreOriginalValuesInViewState propriedade para false. Se fizer isto, deve fornecer a sua própria forma de garantir que os dados não mudaram. Se definir a StoreOriginalValuesInViewState propriedade para false, os valores originais não permanecem no estado de visualização para o controlo limitado por dados. Nesse caso, o LINQ para SQL não pode verificar a integridade dos dados. O LINQ para SQL lança uma exceção que indica um conflito de dados mesmo que os dados na fonte de dados não tenham realmente mudado.
Se a fonte de dados subjacente contiver um campo de carimbo temporal que é automaticamente atualizado durante uma atualização, pode armazenar apenas esse valor no estado da visualização. Nesse caso, a propriedade de carimbo temporal na classe de entidade é definida como IsVersion=true e todas as propriedades são definidas como UpdateCheck.Never. Como um campo de carimbo temporal é automaticamente atualizado pela base de dados sempre que os dados desse registo mudam, o LINQ para SQL determina a partir desse valor se os dados mudaram. Isto ajuda a reduzir o tamanho do estado de visualização, e nenhum dado sensível é exposto. O LINQ para SQL verifica a consistência dos dados comparando o valor do carimbo temporal no estado da visualização com o valor do carimbo temporal na base de dados. Para mais informações, consulte Guia: Utilização de um carimbo temporal com o Controlo LinqDataSource para verificar a integridade dos dados.