Архитектура для приложений с поддержкой баз данных

Я ищу эталонную реализацию шаблона «Единица работы» и «репозиторий» для MS SQL Server или простого старого ADO.NET. Но все образцы создаются в существующем контексте, таком как Linq2SQL или EF. Насколько я понимаю, эти технологии сами почти реализуют этот шаблон.

Но как мне работать с «простым» репозиторием SQL без какого-либо контекста и методов SaveChanges ()? Как правильно использовать TransactionScope? Например, соберите все SQL-операции в Списке команд и затем просто выполните их одну за другой в пределах Tx Scope ... или это слишком просто?

Почему я это ищу? У меня есть задача создать уровень данных, который может работать как с древней базой данных Sybase, так и с SQL Server (возможно, дополнительно в сочетании с компонентом EF4 на основе POCO)

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

Обновление: На прошлой неделе я был в отпуске. Извините за задержку. Сегодня я составил для этого базовую картину своей архитектуры. [ссылка] (s7.directupload.net/file/d/2570/whb7ulbs_jpg.htm). Моя идея - создать простой объектный контекст, такой как объектный контекст EF, который существует параллельно с контекстом EF и используется в моем репозитории. Этот контекст собирает транзакции ATOM Sql в виде своего рода стека и выполняет их в рамках транзакции в части единицы работы. Отличная идея? Плохая идея? Трудно сделать? Я с нетерпением жду вашего мнения по этому поводу.

7
задан Arthur 30 June 2011 в 08:15
поделиться