Freigeben über


LinqDataSource.StoreOriginalValuesInViewState Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die Daten von der Datenquelle im Ansichtszustand gespeichert werden sollen, um sicherzustellen, dass die Daten nicht vor dem Aktualisieren oder Löschen von einem anderen Prozess geändert wurden.

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

Eigenschaftswert

Boolean

true, wenn die Werte im Ansichtszustand gespeichert werden, andernfalls false. Der Standardwert ist true.

Hinweise

Wenn Aktualisierungs- und Löschvorgänge aktiviert wurden, speichert das LinqDataSource Steuerelement die ursprünglichen Werte für alle Datensätze im Ansichtszustand. Das LinqDataSource Steuerelement speichert Werte für alle Primärschlüssel und alle Eigenschaften, die Column nicht im Attribut markiert sindUpdateCheck.Never. Sie legen die UpdateCheck Eigenschaft des Column Attributs im O/R-Designer fest.

Bevor LINQ to SQL Daten aktualisiert oder gelöscht werden, überprüft sie die Werte im Ansichtszustand anhand der aktuellen Werte in der Datenquelle. Wenn die Werte nicht übereinstimmen, hat sich der Datenquellendatensatz geändert. In diesem Fall löst LINQ to SQL eine Ausnahme aus und wird nicht mit dem Update- oder Löschvorgang fortgesetzt. Weitere Informationen zu LINQ to SQL finden Sie unter LINQ to SQL.

Das Speichern der ursprünglichen Werte im Ansichtszustand kann dazu führen, dass die Seitengröße unnötig groß wird und vertrauliche Daten einem böswilligen Benutzer verfügbar machen kann. Sie können das Speichern von Werten im Ansichtszustand deaktivieren, indem Sie die StoreOriginalValuesInViewState Eigenschaft auf falsefestlegen. Wenn Sie dies tun, müssen Sie eine eigene Möglichkeit bereitstellen, um sicherzustellen, dass sich die Daten nicht geändert haben. Wenn Sie die StoreOriginalValuesInViewState Eigenschaft auf falsefestlegen, werden die ursprünglichen Werte nicht im Ansichtszustand für das datengebundene Steuerelement beibehalten. In diesem Fall kann LINQ to SQL die Integrität der Daten nicht überprüfen. LINQ to SQL löst eine Ausnahme aus, die einen Datenkonflikt angibt, auch wenn sich die Daten in der Datenquelle nicht tatsächlich geändert haben.

Wenn die zugrunde liegende Datenquelle ein Zeitstempelfeld enthält, das während eines Updates automatisch aktualisiert wird, können Sie nur diesen Wert im Ansichtszustand speichern. In diesem Fall wird die Timestamp-Eigenschaft in der Entitätsklasse festgelegt IsVersion=true , und alle Eigenschaften werden auf UpdateCheck.Neverfestgelegt. Da ein Zeitstempelfeld bei jeder Änderung der Daten in diesem Datensatz automatisch von der Datenbank aktualisiert wird, wird LINQ to SQL von diesem Wert bestimmt, wenn daten geändert wurden. Dadurch wird die Größe des Ansichtszustands reduziert, und es werden keine vertraulichen Daten verfügbar gemacht. LINQ to SQL überprüft die Datenkonsistenz, indem der Zeitstempelwert im Ansichtszustand mit dem Zeitstempelwert in der Datenbank verglichen wird. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Verwenden eines Zeitstempels mit dem LinqDataSource-Steuerelement zum Überprüfen der Datenintegrität.

Gilt für

Siehe auch