Criteria is a simplified API for retrieving entities by composing NHibernate.Expression objects.

Namespace:  NHibernate
Assembly:  NHibernate (in NHibernate.dll)

Syntax

Visual Basic (Declaration)
Public Interface ICriteria
C#
public interface ICriteria
Visual C++
public interface class ICriteria
JavaScript
NHibernate.ICriteria = function();
NHibernate.ICriteria.createInterface('NHibernate.ICriteria');

Remarks

Using criteria is a very convenient approach for functionality like "search" screens where there is a variable number of conditions to be placed upon the result set.

The Session is a factory for ICriteria. Expression instances are usually obtained via the factory methods on NHibernate.Expression. eg:

 Copy Code
            IList cats = session.CreateCriteria(typeof(Cat)) 
                .Add( Expression.Like("name", "Iz%") ) 
                .Add( Expression.Gt( "weight", minWeight ) ) 
                .AddOrder( Order.Asc("age") ) 
                .List(); 
            
You may navigate associations using CreateAlias(String, String) or CreateCriteria(String).
 Copy Code
            IList cats = session.CreateCriteria(typeof(Cat))
            	.CreateCriteria("kittens")
            		.Add( Expression.like("name", "Iz%") )
            		.List();
            

Hibernate's query language is much more general and should be used for non-simple cases.

Note: This is an experimental API.

See Also