Condividi tramite


LinqDataSource.StoreOriginalValuesInViewState Proprietà

Definizione

Ottiene o imposta un valore che indica se i dati dell'origine dati devono essere archiviati in stato di visualizzazione per assicurarsi che non vengano modificati da un altro processo prima che siano aggiornati o eliminati.

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

Valore della proprietà

Boolean

true se i valori verranno archiviati in stato di visualizzazione; in caso contrario, false. Il valore predefinito è true.

Commenti

Per impostazione predefinita, quando sono state abilitate le operazioni di aggiornamento ed eliminazione, il LinqDataSource controllo archivia i valori originali per tutti i record nello stato di visualizzazione. Il LinqDataSource controllo archivia i valori per tutte le chiavi primarie e tutte le proprietà non contrassegnate con UpdateCheck.Never nell'attributo Column . Impostare la UpdateCheck proprietà dell'attributo Column in Progettazione O/R.

Prima di LINQ to SQL aggiorna o elimina i dati, controlla i valori in stato di visualizzazione rispetto ai valori correnti nell'origine dati. Se i valori non corrispondono, il record dell'origine dati è stato modificato. In tal caso, LINQ to SQL genera un'eccezione e non continua con l'operazione di aggiornamento o eliminazione. Per altre informazioni sulle LINQ to SQL, vedere LINQ to SQL.

L'archiviazione dei valori originali nello stato di visualizzazione può causare un'inutilmente grande dimensione della pagina e può esporre dati sensibili a un utente malintenzionato. È possibile disabilitare l'archiviazione dei valori nello stato di visualizzazione impostando la StoreOriginalValuesInViewState proprietà su false. In questo caso, è necessario fornire il proprio modo per assicurarsi che i dati non siano stati modificati. Se si imposta la StoreOriginalValuesInViewState proprietà su false, i valori originali non vengono salvati in modo permanente nello stato di visualizzazione per il controllo associato a dati. In tal caso, LINQ to SQL non può verificare l'integrità dei dati. LINQ to SQL genererà un'eccezione che indica un conflitto di dati anche se i dati nell'origine dati non sono stati effettivamente modificati.

Se l'origine dati sottostante contiene un campo timestamp che viene aggiornato automaticamente durante un aggiornamento, è possibile archiviare solo tale valore nello stato di visualizzazione. In tal caso, la proprietà timestamp nella classe di entità è impostata su IsVersion=true e tutte le proprietà sono impostate su UpdateCheck.Never. Poiché un campo timestamp viene aggiornato automaticamente dal database ogni volta che i dati in tale record vengono modificati, LINQ to SQL determina da tale valore se i dati sono stati modificati. Ciò consente di ridurre le dimensioni dello stato di visualizzazione e non vengono esposti dati sensibili. LINQ to SQL verificherà la coerenza dei dati confrontando il valore timestamp nello stato di visualizzazione con il valore timestamp nel database. Per altre informazioni, vedere Procedura dettagliata: Uso di un timestamp con il controllo LinqDataSource per controllare l'integrità dei dati.

Si applica a

Vedi anche