Compartilhar via


LinqDataSource.StoreOriginalValuesInViewState Propriedade

Definição

Obtém ou define um valor que indica se os dados da fonte de dados devem ser armazenados em estado de exibição para certificar-se de que os dados não sejam alterados por outro processo antes de serem atualizados ou excluídos.

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 da propriedade

Boolean

true se os valores serão armazenados no estado de exibição; caso contrário, false. O valor padrão é true.

Comentários

Por padrão, quando as operações de atualização e exclusão foram habilitadas, o LinqDataSource controle armazena os valores originais para todos os registros no estado de exibição. O LinqDataSource controle armazena valores para todas as chaves primárias e todas as propriedades não UpdateCheck.Never marcadas no Column atributo. Você define a UpdateCheck propriedade do Column atributo no Designer O/R.

Antes de LINQ to SQL atualiza ou exclui dados, ele verifica os valores no estado de exibição em relação aos valores atuais na fonte de dados. Se os valores não corresponderem, o registro da fonte de dados será alterado. Nesse caso, LINQ to SQL gera uma exceção e não continua com a operação de atualização ou exclusão. Para obter mais informações sobre LINQ to SQL, consulte LINQ to SQL.

Armazenar os valores originais no estado de exibição pode fazer com que o tamanho da página se torne desnecessariamente grande e possa expor dados confidenciais a um usuário mal-intencionado. Você pode desabilitar o armazenamento de valores no estado de exibição definindo a StoreOriginalValuesInViewState propriedade como false. Se você fizer isso, deverá fornecer sua própria maneira para garantir que os dados não foram alterados. Se você definir a StoreOriginalValuesInViewState propriedade como false, os valores originais não serão persistidos no estado de exibição para o controle associado a dados. Nesse caso, LINQ to SQL não pode verificar a integridade dos dados. LINQ to SQL lançará uma exceção que indica um conflito de dados, mesmo que os dados na fonte de dados não sejam realmente alterados.

Se a fonte de dados subjacente contiver um campo de carimbo de data/hora que é atualizado automaticamente durante uma atualização, você poderá armazenar apenas esse valor no estado de exibição. Nesse caso, a propriedade de carimbo de data/hora na classe de entidade é definida IsVersion=true como e todas as propriedades são definidas como UpdateCheck.Never. Como um campo de carimbo de data/hora é atualizado automaticamente pelo banco de dados sempre que os dados nesse registro são alterados, LINQ to SQL determina a partir desse valor se os dados foram alterados. Isso ajuda a reduzir o tamanho do estado de exibição e nenhum dado confidencial é exposto. LINQ to SQL verificará a consistência dos dados comparando o valor do carimbo de data/hora no estado de exibição com o valor do carimbo de data/hora no banco de dados. Para obter mais informações, consulte Passo a passo: usando um carimbo de data/hora com o controle LinqDataSource para verificar a integridade dos dados.

Aplica-se a

Confira também