Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Вариативность сохранения изменений мастера в бизнес-сервере в зависимости от последовательности обновляемых объектов #65

Open
bratchikov opened this issue Oct 17, 2019 · 0 comments
Labels
Milestone

Comments

@bratchikov
Copy link
Member

bratchikov commented Oct 17, 2019

Описание ошибки

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

Ожидаемое поведение

Поведение должно быть одинаковым вне зависимости от порядка объектов, передаваемых в UpdateObjects(). BusinesServer должен иметь приоритет при сохранении, поскольку его задача как раз заключается в корректировке данных, передаваемых на обновление.

Шаги воспроизведения

Нужен юнит-тест.

Конфигурация

Ошибка присутствует во всех версиях ORM.

Пути решения

Сбор изменений для построения SQL Update происходит тут. Всё что приходит из BS обрабатывается простым добавлением в массив. Получается, что для объектов, которые вернулись из BS надо изменения пересчитывать.

Можно посмотреть на реализацию в ветке feature-dotnetcore2-v2 - там, похоже, была решена эта проблема.

Исходный код

Ветка с юнит-тестом: fix-65-update-master-in-bs (само исправление, сделанное в ней не подходит, поскольку в такой реализации перестают срабатывать BS-ы детейлов при удалении агрегатора).

Тесты

Юнит-тест:

Примерная оценка трудоёмкости

8ч.

bratchikov pushed a commit that referenced this issue Oct 18, 2019
@bratchikov bratchikov added this to the 5.1 milestone Oct 27, 2019
@bratchikov bratchikov added the bug label Oct 27, 2019
@bratchikov bratchikov modified the milestones: 5.1, 7.0 Aug 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant