Лучший способ справиться с подключением к БД в DAL - создать или передать?

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

Как лучше всего справляться с подключениями к базе данных в DAL?

a ) Создавайте новое соединение в каждом методе и удаляйте его впоследствии.
Хорошо: Легко писать и работать.
Плохо: Многие соединения открываются и закрываются. (производительность?)

б) Передать соединение как (необязательный) аргумент.
Хорошо: Я мог бы повторно использовать открытое соединение для нескольких команд.
Плохо: Я должен отслеживать владения соединением (кто должен его закрыть?) и не может использовать очень аккуратные операторы использования.

в) Что-то еще? (Возможно подключение как синглтон?)

Я впервые пишу настоящий DAL, поэтому мне действительно нужна помощь от вас, опытные люди.

РЕДАКТИРОВАТЬ: Как кажется, это имеет значение, это веб-сайт ASP.Net Проект.

5
задан magnattic 26 January 2011 в 21:44
поделиться