Иллюстрация обновления объектов одной транзакцией на примере

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

Для формирования транзакции используются объекты, возвращаемые методом OnUpdate любого бизнес-сервера:

  • Создать\вычитать объекты для транзакции.
  • Внести необходимые изменения во все объекты для транзакции (к примеру, проставить ссылки или изменить поля).
  • Добавить все объекты транзакции в массив возвращаемых методом элементов.

Пример

Например, существуют два класса, ссылающиеся друг на друга обязательной связью. Стоит задача при создании объекта класса A автоматически создавать объект класса В и проставлять ссылки друг на друга.

Для начала, необходимо создать бизнес-сервер для класса A и привязть его к обновлению объектов этого класса.

В методе OnUpdate класса A необходимо написать следующий код:

var a = UpdatedObject;
var b = new B();
a.Копия = b;
b.Копия = a;

return new DataObject[2] { a, b }; 

Теперь при создании объекта типа А автоматически будет создаваться его копия - объект типа В.