также имеет преимущества; например, независимость от ORM (которая может использовать более чистую архитектуру хранилища), и для простых запросов этого более чем достаточно.

от вопрос уже есть ответ здесь:

Компромиссы с использованием NHibernate 3.0 QueryOver или поставщика LINQ 4 ответа

Я заметил, что есть два способа создать приятный общий дружественный доступ к nhibernate.

IQueryOver<T, T> query= session.QueryOver<T>().Where(criteria);

а также

IQueryable<T> query= session.Query<T>().Where(criteria);

Реализации каждого интерфейса.

IQueryOver<TRoot, TSubType> : IQueryOver<TRoot>, IQueryOver

а также

IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable

IQueryable реализует IEnumerable, поэтому поддерживает все дружественные LINQ вещи, которые вы ожидаете. Я склоняюсь к этой реализации, но мне было интересно, знает ли кто-нибудь, какова цель QueryOver, которую вы не можете выполнить с помощью Query?