Как инкапсулировать доступ к базе данных? - PullRequest
3 голосов
/ 01 июня 2009

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

  • У меня нет всех строк подключения над местом
  • Несколько звонков на один и тот же хранится процедура из разных функций
  • или WORSE, несколько хранятся процедуры, которые отличаются друг от друга один столбец

Мне интересно знать, полезно ли использовать ORM, такой как NHibernate, поскольку он может просто добавить еще один уровень сложности к быстро меняющейся модели данных, и артефакты необходимо создавать в сжатые сроки.

Меня больше интересуют методы или шаблоны ДРУГИЕ, чем пакеты ORM.

Ответы [ 4 ]

1 голос
/ 01 июня 2009

Если, как оказалось, это важный проект, а DAL является основным фактором риска, подключите кого-нибудь, кто делал это раньше. Вы совершенно правы в том, что существует слишком много способов сойти с рельсов, пытаясь сделать это правильно с первого раза без солидного опыта.

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

1 голос
/ 02 июня 2009

как указано выше, проверьте хранилище и единицы работы. книги Фаулера и Эванса очень рекомендуются. читатель Карла Сегина, который дал мне более прохладное введение в только что упомянутые книги возьмите его на http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx

1 голос
/ 01 июня 2009

Для инкапсуляции доступа к данным используются как минимум два общепринятых шаблона проектирования:

  • хранилище (DDD)
  • DAO (объект доступа к данным)

Ради полноты я предлагаю вам следующие книги:

0 голосов
/ 02 июня 2009

Как Java-разработчик, я мог бы предложить прочитать о шаблонах jdbc, несмотря на то, что это не .NET, вы можете узнать, как Spring Framework инкапсулирует уровень доступа к данным, и получить некоторые идеи.

...