Показать сообщение отдельно
Старый 16.11.2015, 13:26   #1  
Pandasama is offline
Pandasama
Участник
 
464 / 140 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
порядок обработки записей в форме с UnitOfWork
Ax2012
Проблема в следующем:
есть форма с реализованным на нем UnitOfWork (ChangeGroupMode выставлено в значение ImplicitInnerOuter)
На форме пара датасорсов через innerjoin и к ним ещё несколько датасорсов через outer
примерно так
datasource A <-- inner join <-- datasource B
datasource A <-- outer join <-- datasource C
datasource A <-- outer join <-- datasource D

При сохранении записи в форме наблюдается неустойчивое поведение в порядке сохранений записей в таблицу. Иногда сохраняется сначала D, C, B, A, а иногда - D, B, A и только потом C.
Из-за этого ломается некоторая бизнес-логика, которая работает при вставке в таблицу A и должна использовать значения из C.

Как задается порядок вставки записей в UintOfWork (особенно, в данном случае, на форме)? просто по иерархии джойнов? можно ли его как-то поменять?

UPD: собственно, возникла мысль, что упомянутую бизнес-логику "которая работает при вставке в таблицу A и должна использовать значения из C" - надо просто как-то завернуть в этот же UnitOfWork, т.е. вместо поиска в ней записи C и использования её данных/recid - использовать её данные в рамках UoW, которые будут вставлены позже. Это реализуемо?

Последний раз редактировалось Pandasama; 16.11.2015 в 14:13.