также имеет преимущества; например, независимость от 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?