LinqDataSource.StoreOriginalValuesInViewState Свойство

Определение

Возвращает или задает значение, определяющее необходимость хранения данных из источника данных в состоянии просмотра для гарантии неизменности данных другим процессом перед их обновлением или удалением.

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

Значение свойства

Значение true, если значения сохраняются в состоянии представления; в противном случае — значение false. Значение по умолчанию — true.

Комментарии

По умолчанию, если включены операции обновления и удаления, LinqDataSource элемент управления сохраняет исходные значения для всех записей в состоянии просмотра. Элемент LinqDataSource управления хранит значения для всех первичных ключей и всех свойств, не помеченных атрибутом UpdateCheck.NeverColumn . Свойство атрибута Column задается UpdateCheck в конструкторе объектов.

Перед тем как LINQ to SQL обновить или удалить данные, он проверяет значения в состоянии представления на соответствие текущим значениям в источнике данных. Если значения не совпадают, запись источника данных изменилась. В этом случае LINQ to SQL создает исключение и не продолжает операцию обновления или удаления. Дополнительные сведения о LINQ to SQL см. в разделе LINQ to SQL.

Хранение исходных значений в состоянии представления может привести к тому, что размер страницы станет неоправданно большим и может предоставить конфиденциальные данные злоумышленнику. Вы можете отключить хранение значений в состоянии представления, задав StoreOriginalValuesInViewState для свойства значение false. В этом случае необходимо предоставить собственный способ убедиться, что данные не изменились. Если для свойства задано значение StoreOriginalValuesInViewStatefalse, исходные значения не сохраняются в состоянии просмотра для элемента управления с привязкой к данным. В этом случае LINQ to SQL не сможет проверить целостность данных. LINQ to SQL вызовет исключение, указывающее на конфликт данных, даже если данные в источнике данных фактически не изменились.

Если базовый источник данных содержит поле метки времени, которое автоматически обновляется во время обновления, вы можете сохранить только это значение в состоянии просмотра. В этом случае свойству timestamp в классе сущностей присваивается значение IsVersion=true , а всем свойствам присваивается значение UpdateCheck.Never. Так как поле метки времени автоматически обновляется базой данных при каждом изменении данных в этой записи, LINQ to SQL определяет на основе этого значения, изменились ли данные. Это помогает уменьшить размер состояния представления, и конфиденциальные данные не предоставляются. LINQ to SQL проверит согласованность данных, сравнив значение метки времени в состоянии представления со значением метки времени в базе данных. Дополнительные сведения см. в разделе Пошаговое руководство. Использование метки времени с элементом управления LinqDataSource для проверки целостности данных.

Применяется к

См. также раздел