LinqDataSource.StoreOriginalValuesInViewState Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy dane ze źródła danych powinny być przechowywane w stanie widoku, aby upewnić się, że dane nie zostały zmienione przez inny proces przed ich zaktualizowaniem lub usunięciem.
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
Wartość właściwości
true
jeśli wartości będą przechowywane w stanie widoku; w przeciwnym razie , false
. Wartość domyślna to true
.
Uwagi
Domyślnie po włączeniu LinqDataSource operacji aktualizacji i usuwania kontrolka przechowuje oryginalne wartości dla wszystkich rekordów w stanie widoku. Kontrolka LinqDataSource przechowuje wartości dla wszystkich kluczy podstawowych i wszystkie właściwości, które nie są oznaczone UpdateCheck.Never
w atrybucie Column
. Właściwość atrybutu Column
należy ustawić UpdateCheck
w projektancie O/R.
Przed LINQ to SQL aktualizuje lub usuwa dane, sprawdza wartości w stanie widoku względem bieżących wartości w źródle danych. Jeśli wartości nie są zgodne, rekord źródła danych uległ zmianie. W takim przypadku LINQ to SQL zgłasza wyjątek i nie kontynuuje operacji aktualizacji ani usuwania. Aby uzyskać więcej informacji na temat LINQ to SQL, zobacz LINQ to SQL.
Przechowywanie oryginalnych wartości w stanie widoku może spowodować, że rozmiar strony stanie się niepotrzebnie duży i może uwidocznić poufne dane złośliwemu użytkownikowi. Możesz wyłączyć przechowywanie wartości w stanie widoku, ustawiając StoreOriginalValuesInViewState właściwość na false
. Jeśli to zrobisz, musisz podać własny sposób, aby upewnić się, że dane nie uległy zmianie. Jeśli ustawisz StoreOriginalValuesInViewState właściwość na false
wartość , oryginalne wartości nie będą utrwalane w stanie widoku dla kontrolki powiązanej z danymi. W takim przypadku LINQ to SQL nie może zweryfikować integralności danych. LINQ to SQL zgłosi wyjątek wskazujący konflikt danych, nawet jeśli dane w źródle danych nie uległy zmianie.
Jeśli bazowe źródło danych zawiera pole znacznika czasu, które jest automatycznie aktualizowane podczas aktualizacji, można przechowywać tylko te wartości w stanie widoku. W takim przypadku właściwość znacznika czasu w klasie jednostki jest ustawiona na IsVersion=true
, a wszystkie właściwości są ustawione na UpdateCheck.Never
wartość . Ponieważ pole znacznika czasu jest automatycznie aktualizowane przez bazę danych za każdym razem, gdy dane w tym rekordzie ulegają zmianie, LINQ to SQL określa wartość z tej wartości, jeśli dane uległy zmianie. Pomaga to zmniejszyć rozmiar stanu widoku i nie są ujawniane żadne poufne dane. LINQ to SQL sprawdzi spójność danych, porównując wartość znacznika czasu w stanie widoku z wartością znacznika czasu w bazie danych. Aby uzyskać więcej informacji, zobacz Walkthrough: Using a Timestamp with the LinqDataSource Control to Check Data Integrity (Przewodnik: używanie znacznika czasu za pomocą kontrolki LinqDataSource do sprawdzania integralności danych).