Моя компания находится в процессе переписывания существующего приложения с нуля. Это приложение, помимо других задач, выполняет сложные запросы SQL к данным заказа и счета-фактуры для создания отчетов о продажах. Запросы строятся динамически в зависимости от того, какие критерии выбраны пользователем, поэтому они могут быть довольно сложными, если выбрано много критериев. В настоящее время производительность приличная, но не отличная.
Теперь для новой версии мы хотели бы использовать ORM, возможно, NHibernate, поскольку он, по-видимому, единственный, который поддерживает Oracle Lite (приложение использует либо Oracle, либо Oracle Lite, в зависимости от того, работает ли оно в режиме подключения или отключения). ). Но меня беспокоит производительность запросов, генерируемых NHibernate. Я раньше работал с другими ORM (Linq to SQL, Entity Framework), но запросы были довольно простыми, поэтому проблем с производительностью не было.
Итак, прежде чем принять решение об использовании ORM или использовании простого SQL, я хотел бы узнать, насколько хорошо эти инструменты обрабатывают такие сценарии, как внешние объединения, подзапросы и т. Д. Как вы думаете, ORM (особенно NHibernate) подходит для использования в сценарии отчетности, описанном выше? Стоит ли беспокоиться о производительности сложных запросов?
Любая обратная связь будет принята с благодарностью