LinqDataSource.StoreOriginalValuesInViewState Właściwość

Definicja

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

Boolean

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 falsewartość , 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.Neverwartość . 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).

Dotyczy

Zobacz też