Является ли NHibernate 3.0 встроенным провайдером Linq стабильным?

Могу ли я зависеть от встроенного поставщика Linq NHibernate 3.0 для выполнения сложных запросов, содержащих агрегатные функции, такие как Max и Min, и содержит операции со строками, такие как Contains, StartsWith или EndsWith ??


person Sawan    schedule 23.12.2010    source источник
comment
Я бы не сказал, что это стабильность, скорее полнота   -  person Mauricio Scheffer    schedule 23.12.2010


Ответы (3)


По списку nhusers было много споров, так как осталось немало нерешенных вопросов.

Я бы заглянул в группу nhusers, прочитал несколько постов и принял решение. Поиск сообщений здесь.

Лично я обнаружил, что queryover делает все, что мне нужно, поэтому я, например, подожду, пока провайдер Linq со временем станет более стабильным.

Я бы рекомендовал присоединиться к группе nhusers, чтобы лучше почувствовать себя.

person Rippo    schedule 23.12.2010
comment
Большое спасибо, но мне нужен более общий метод запроса, чем запрос! - person Sawan; 23.12.2010

Заметные проблемы, которые я обнаружил:

  1. Метод .OfType() не реализован, что может быть проблемой при иерархии наследования.
  2. Левые соединения не поддерживаются
  3. Нетривиальная группировка по операциям не работает (даже такая простая сортировка, как сортировка по количеству групп).
  4. Fetch() должен быть последним методом в запросе, что может затруднить разбиение на страницы со связанными коллекциями.

Тем не менее, это определенно улучшение от поставщика NHContrib.

Перечисленные вами операции прекрасно поддерживаются в обычных сценариях.

person Dmitry S.    schedule 28.12.2010
comment
Эй, вы не знаете, работает ли кэширование второго уровня? Я немного поиграл с этим, но я не мог заставить это работать. Одна вещь, которую я не пробовал, - это поставить Cacheable в конце запроса. Кроме того, если это сработает, вы можете использовать Fetch вместе с Cacheable. - person nfplee; 30.12.2010

Поставщик LINQ гораздо более стабилен и продвинут, чем тот, который написал Айенде. (не говоря о том, что он написал, это было из-за того, что он написал, что я снова взял NH)

Я думаю, что единственная проблема, с которой я столкнулся при использовании NH Query, — это составные типы. Вы можете сделать это в EF/L2S, и NH3, кажется, генерирует правильный sql, но не может его выполнить.

Лично мне нравится QueryOver, мне он читается лучше.

person Phill    schedule 23.12.2010