170 похожих чатов

Всем привет. есть вопрос на счет транзакций и чистой архитектуры. у меня

есть слой service и есть repository.

как лучше реализовать транзакционность запросов к бд?
Допустим у меня есть методы: Insert() и List().

1) В сервисном слое написать что то типа s.db.BeginTransaction() и внунтри вызывать методы Insert(tx), List(tx).

2) Спрятать весь этот функционал внутри репозитория?

3 ответов

20 просмотров
Alisher- Автор вопроса

Это плохо когда репозиторий знает слишко много о реализации того или иного метода, поэтому я рассматриваю и первой варик

Alisher
Это плохо когда репозиторий знает слишко много о р...

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

Евгений Омельченко
Если транзакции базы данных вы используете, чтобы ...

При переходе на другой сторадж будет транзакция которая ничего не делает. Другой вопрос, что в принципе уже не будет возможность перехода на другой сторадж, который не поддерживает транзакции

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Карта сайта