Когда и где использовать nHibernate в проекте? - PullRequest
0 голосов
/ 03 ноября 2010

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

Должен ли я пойти по чистому пути использования nHibernate для выполнения этих запросов и заполнить соответствующие объекты репозитория независимо от его производительности ИЛИ мне просто пойти прямо по базе данных, передав набор данных обратно через бизнес-уровень?

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

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 03 ноября 2010

NHibernate предлагает гораздо больше, чем простые запросы. Ответ зависит от того, что вам нужно.Некоторые примеры:

  • Автоматическое сопоставление данных с классами;

  • Автоматическое отслеживание изменений;

  • Независимость от базы данных;

  • Множество вариантов запросов к базе данных (в настоящее время 7) с поддержкой простого рефакторинга;

  • Встроенные возможности кэширования;

  • Гораздо больше.

Если какое-либо из этих свойств подходит для вашего проекта, тогда да, выберите NHibernate.

1 голос
/ 03 ноября 2010

Будьте прагматичны в этом.

Многие "сложные" запросы могут быть легко выражены в HQL, но если SQL лучше подходит для некоторых, во что бы то ни стало, используйте его.

ОтчетностьСценарии, в частности, обычно лучше подходят для инструментов отчетности, которые работают непосредственно с БД.

1 голос
/ 03 ноября 2010

Если в ваших отчетах относительно простые объединения / группировки, то с Nhivernate все будет в порядке.

Если у вас сложные запросы для целей отчетности, Nhibernate может оказаться не лучшим решением.Я бы порекомендовал SSRS (Sql Server Reporting Service).Это будет проще для группировки и других дополнительных функций, таких как экспорт в Word / Excel.

Это действительно зависит от сложности ваших отчетов.

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