Предназначен ли nHibernate для замены объектов базы данных? - PullRequest
0 голосов
/ 08 октября 2009

Я пока не нашел четкого ответа на этот вопрос и уточнить:

Ожидается ли от nHibernate и SQL-сервера игнорирование или перенос бизнес-логики, хранимой в хранимых процедурах, представлениях и триггерах, в HQL или код приложения?

Ответы [ 2 ]

1 голос
/ 08 октября 2009

NHibernate является O / R Mapper, который очень подходит для приложений, которые построены с использованием методологии «доменных».
В таких приложениях модель предметной области является выразительной объектно-ориентированной моделью бизнеса. Это означает, что «модель» содержит всю (или большую часть) бизнес-логику.
В таких случаях я вижу очень мало (если есть) ситуаций, когда вы бы помещали бизнес-логику в хранимые процедуры.

0 голосов
/ 08 октября 2009

Ну, оставив в стороне все детали: да.

NH - объектно-реляционный картограф, предназначенный для использования с архитектурным стилем, который называется «доменно-управляемый дизайн». Важным аспектом этого является то, что он полностью игнорирует базу данных для чего-либо кроме сохранения и загрузки данных - эта концепция называется Постоянное невежество , и ее девиз: Нет базы данных .

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

Если вы будете следовать предпочтительной методологии доменного управления, у вас просто не будет возможности поместить бизнес-логику в БД - просто потому, что на момент создания вашего бизнес-уровня не было никаких БД ...

...