|
Как решить такую проблему ?
|
|||
---|---|---|---|
#18+
Привет. Прошу совета. Схема работы такая : MyClass1 и MyClass2 что то меняют в БД (Update), используя класс слоя данных DAL. Метод MyClass2 принимает данные, полученные после работы MyClass1 - т.е. зависит от них. Класс Manager просто управляет этой работой - вызывает MyClass1 и затем передает результат его работы в MyClass2. Структура классов : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Проблема . Как обеспечить, чтобы MyClass1 и MyClass2 делали работу в пределах единой транзакции ? Теоретически, можно было бы создавать транзацию в Dal.DoWorkFor1 и возвращать ее. И затем передавать в Dal.DoWorkFor2. Однако проблема в том, что эта транзакция пройдет через класс Manager (метод DoWork) - который не должен бы иметь понятия про слой данных и его сущности. Как решать такую проблему ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 16:08 |
|
Как решить такую проблему ?
|
|||
---|---|---|---|
#18+
Крутится в голове термин "Unit of Work". Это как раз про мой вопрос ? Но имеется ли там решение моего вопроса : передать транзакцию из одного класса слоя данных в другой - проходя через сторонний класс-управленец, который не должен знать про это (или должен ?) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2015, 16:29 |
|
Как решить такую проблему ?
|
|||
---|---|---|---|
#18+
ProBiotek, решать в конкретной ЯП, т.к. вариантов много и риск написать велосипед огромен. - есть декларативное описание транзакций (фреймворк по аннотациям-маркерам всё сделает за тебя). - есть ручное. ... транзакция обычно привязана к коннекту, поэтому просто передают коннект. ... есть ОРМ напр. хибер, который и делает DAL и всё отсальное. Ты же не системный программист? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 09:38 |
|
Как решить такую проблему ?
|
|||
---|---|---|---|
#18+
ProBiotek, по названию темы видно, что велосипед как раз и пишешь. Первый раз тему создал? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 09:39 |
|
Как решить такую проблему ?
|
|||
---|---|---|---|
#18+
Petro123, Я не понял. Скажите, Entity Framework позволит такое сделать ? Как-то можно его настроить, чтобы два разных обращения к БД шли в одной транзакции ? Или какой ОРМ это может делать ? Велосипед я конечно изобретаю, в каком-то смысле. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 11:33 |
|
Как решить такую проблему ?
|
|||
---|---|---|---|
#18+
ProBiotek, не понял какое слово? Что тема не так названа? Что надо в ветку ЯП идти? Ты задал технический вопрос. Тут в ветке уровень выше. ЗЫ Petro123есть ОРМ напр. хибер, который и делает DAL и всё отсальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 12:36 |
|
|
start [/forum/topic.php?fid=33&msg=39075822&tid=1547435]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 557ms |
0 / 0 |