I noticed there are two ways to create nice generic friendly access to nhibernate.
IQueryOver<T, T> query= session.QueryOver<T>().Where(criteria);
and
IQueryable<T> query= session.Query<T>().Where(criteria);
Implementations of each interface.
IQueryOver<TRoot, TSubType> : IQueryOver<TRoot>, IQueryOver
and
IQueryable<out T> : IEnumerable<T>, IQueryable, IEnumerable
IQueryable implements IEnumerable, thus supports all the LINQ friendly things you would expect. I am tending towards this implementation, but was wondering if anyone knew what the purpose of QueryOver was that you cannot accomplish with Query?