You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Если изменять свойства мастера в бизнес-сервере основного объекта, то в некоторых случаях эти изменения попадают в БД, а в некоторых нет.
Ожидаемое поведение
Поведение должно быть одинаковым вне зависимости от порядка объектов, передаваемых в UpdateObjects(). BusinesServer должен иметь приоритет при сохранении, поскольку его задача как раз заключается в корректировке данных, передаваемых на обновление.
Шаги воспроизведения
Нужен юнит-тест.
Конфигурация
Ошибка присутствует во всех версиях ORM.
Пути решения
Сбор изменений для построения SQL Update происходит тут. Всё что приходит из BS обрабатывается простым добавлением в массив. Получается, что для объектов, которые вернулись из BS надо изменения пересчитывать.
Можно посмотреть на реализацию в ветке feature-dotnetcore2-v2 - там, похоже, была решена эта проблема.
Исходный код
Ветка с юнит-тестом: fix-65-update-master-in-bs (само исправление, сделанное в ней не подходит, поскольку в такой реализации перестают срабатывать BS-ы детейлов при удалении агрегатора).
Тесты
Юнит-тест:
Примерная оценка трудоёмкости
8ч.
The text was updated successfully, but these errors were encountered:
Описание ошибки
Если изменять свойства мастера в бизнес-сервере основного объекта, то в некоторых случаях эти изменения попадают в БД, а в некоторых нет.
Ожидаемое поведение
Поведение должно быть одинаковым вне зависимости от порядка объектов, передаваемых в UpdateObjects(). BusinesServer должен иметь приоритет при сохранении, поскольку его задача как раз заключается в корректировке данных, передаваемых на обновление.
Шаги воспроизведения
Нужен юнит-тест.
Конфигурация
Ошибка присутствует во всех версиях ORM.
Пути решения
Сбор изменений для построения SQL Update происходит тут. Всё что приходит из BS обрабатывается простым добавлением в массив. Получается, что для объектов, которые вернулись из BS надо изменения пересчитывать.
Можно посмотреть на реализацию в ветке
feature-dotnetcore2-v2
- там, похоже, была решена эта проблема.Исходный код
Ветка с юнит-тестом:
fix-65-update-master-in-bs
(само исправление, сделанное в ней не подходит, поскольку в такой реализации перестают срабатывать BS-ы детейлов при удалении агрегатора).Тесты
Юнит-тест:
Примерная оценка трудоёмкости
8ч.
The text was updated successfully, but these errors were encountered: