NHibernate Forge The official new home for the NHibernate for
.NET community  QueryOver in NH 3.0   The ICriteria API is
NHibernate's implementation of Query Object. NHibernate 3.0
introduces the QueryOver api, which combines the use of
Extension Methods and Lambda Expressions (both new in .Net 3.5)
to provide a statically typesafe wrapper round the ICriteria
API.  QueryOver uses Lambda Expressions to provide some extra
syntax to remove the 'magic strings' from your ICriteria
queries.  So, for example:  .Add(Expression.Eq("Name", "Smith"))
.Where<Person>(p => p.Name == "Smith")  With this kind of syntax
there are no 'magic strings', and refactoring tools like 'Find
All References', and 'Refactor->Rename' work perfectly.  Note:
QueryOver is intended to remove the references to 'magic
strings' from the ICriteria API while maintaining it's
opaqueness. It is not a LINQ provider; NHibernate 3.0 has a
built-in Linq provider for this.   Structure of a Query  Queries
are created from an ISession using the syntax: