Добро пожаловать Гость, вы находитесь: Вход

Изображение Flexberry Wiki









Копия объекта данных

Сервис данных выполняет построение запросов на изменение строк в БД на основе информации об изменённых свойствах объекта. Для получения этой информации в самом объекте хранится отдельная полная копия объекта (при этом для выявления изменений требуется лишь сравнить текущие значения полей объекта данных и соответствующих значений в его копии).
Копия объекта данных доступна через метод dataobject.GetDataCopy().

Копия данных заполняется из значений полей объекта в нескольких случаях:
  • При вычитке объекта из БД (если не было указано, что инициализировать копию данных не надо).
  • При вызове метода dataobject.InitDataCopy() программистом.

Оптимизация работы

Операция создания копии данных - довольно дорогостоящая операция в плане производительности, поэтому рекомендуется при вычитке объектов, которые точно не будут обновляться в БД, отключать инициализацию копии данных в свойствах LoadingCustomizationStruct:

LoadingCustomizationStruct lcs = LoadingCustomizationStruct.GetSimpleStruct(typeof(Шапка), "ШапкаE");
lcs.InitDataCopy = false;

Также в целях оптимизации не происходит инициализация мастеровых полей. Для мастеров инициализируются только первичные ключи. Если мастеровой объект был вычитан с достаточным количеством полей и его планируется обновлять в БД, то сразу после зачитки для него необходимо вызвать метод InitDataCopy().

Копия данных созданного объекта

Если объект имеет статус Created, то у него отсутствует копия данных после инициализации копии данных (InitDataCopy), поскольку копия данных объекту, у которого статус Created не нужна (при обновлении данный объект весь пойдёт в базу, и InitDataCopy пропускает такие объекты).

Откуда ссылаются на эту страницу


Куда ссылается эта страница



На этой странице ещё нет сообщений. Ваше будет первым!

ScrewTurn Wiki version 3.0.5.600. Some of the icons created by FamFamFam.