DAO / Репозиторий / NHibernate And Handling Edge DB - PullRequest
0 голосов
/ 30 ноября 2009

Одна вещь, которая постоянно вводит меня в заблуждение, и я не вижу особого упоминания об этом в книгах / блогах, это то, как обрабатывать операции с БД в системе, которая действительно не подпадает под юрисдикцию DAO или репозиториев. Мне нравится использовать подход общих DAO / репозиториев для обработки общих операций с БД, но как насчет того, чтобы иметь дело с вещами, которые не являются сущностями? Например, скажем, я строю систему, и в некоторых случаях мне нужно вызвать хранимую процедуру для запуска пакетной операции и просто вернуть код успеха. Или мне нужно просто загрузить дату из разных таблиц. Или я хочу загрузить список штатов США из таблицы. Эти случаи, безусловно, имеют место, и они действительно могут не иметь никакого отношения к объекту или другому объекту в системе. Не вдаваясь в неприятный класс «misc» DB, который отказывается от чего-то вроде NHibernate, чтобы вручную использовать ADO.NET для выполнения этих типов операций, каковы другие стандартные подходы от группы ООП?

1 Ответ

2 голосов
/ 30 ноября 2009

Обход DAO и работа напрямую с разъемом ADO (или родным драйвером) - это именно то, что делают все, и в этом нет ничего «противного» или неправильного. Если это действительно крайние случаи для вас, то какую основу вы ожидаете? Хуже всего то, что когда люди оборачивают все свои странные махинации вокруг своего DAO, чтобы сделать что-то, от чего они сосут, просто во имя «не ходить <вставьте DAO здесь>».

Я имею в виду, что если у вас есть сохраненный процесс, то вы, очевидно, решили, что агностицизм БД выходит за рамки (в любом случае, это переоцененная цель), так почему же возникают опасения по поводу использования ADO.Net? Просто сделайте это очень явным в коде, не скрывайте это. Скажите это громко и гордо: «Я использую базу данных, и я не делаю снимок того, что кто-то думает!». О, и, пожалуйста, убедитесь, что он все еще отделен от остальной логики. Я не хочу, чтобы мои модульные тесты замедлялись из-за вашего сохраненного процесса.

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