2010-02-15 3 views
3

У меня есть определенный сценарий, в котором вставки и обновления выполняются в нескольких таблицах на основе некоторых ограничений. Естественно использовать область транзакций для этих сценариев. Теперь у меня есть уровень репозитория и уровень обслуживания. сервисный уровень опосредует репозиторий и пользовательский интерфейс и остается ненаучным. Теперь я не понимаю, где использовать транзакции либо в сервисе, либо в слоях репозитория. Я не использую никаких ORM. Я также видел людей, которые выступают за модельный план работы для таких сценариев. есть ли какие-либо примеры шаблона рабочей единицы, который соответствует моим текущим сценариям, все примеры, которые я видел, используют ORMS.Управление транзакциями либо на уровне сервиса, либо на уровне репозитория?

Thanks,

ответ

4

Это, конечно, будет зависеть от вашей системы, но, как правило, я бы делал это на сервисном уровне. Особенно, если ваши методы уровня обслуживания вызывают множественные мелкозернистые методы репозитория и ожидают, что они будут либо выполнять фиксацию, либо весь откат.

3

Некоторые вопросы, которые могут помочь ответить на этот вопрос.

Какой уровень понимает транзакционные требования? Какова степень детализации вашего интерфейса репозитория?

В моем мире мы имеем тенденцию иметь мелкозернистые операции сохранения, вставки, обновления, удаления. а затем составить их в сервисном слое. Следовательно, в этой среде мне кажется очевидным, что это уровень обслуживания, который понимает транзакционную область.