Если возникает необходимость обновить несколько объектов одной транзакцией (к примеру, чтобы поддержать ссылочную целостность), можно воспользоваться стандартным механизмом бизнес-сервера.
Для формирования транзакции используются объекты, возвращаемые методом OnUpdate
любого бизнес-сервера:
- Создать\вычитать объекты для транзакции.
- Внести необходимые изменения во все объекты для транзакции (к примеру, проставить ссылки или изменить поля).
- Добавить все объекты транзакции в массив возвращаемых методом элементов.
Пример
Например, существуют два класса, ссылающиеся друг на друга обязательной связью. Стоит задача при создании объекта класса A автоматически создавать объект класса В и проставлять ссылки друг на друга.
Для начала, необходимо создать бизнес-сервер для класса A и привязть его к обновлению объектов этого класса.
В методе OnUpdate класса A необходимо написать следующий код:
var a = UpdatedObject;
var b = new B();
a.Копия = b;
b.Копия = a;
return new DataObject[2] { a, b };
Теперь при создании объекта типа А автоматически будет создаваться его копия - объект типа В.
return
метода OnUpdate
: именно через него формируется список элементов транзкции.