criteriaicriterianhlambdaextensions

NHLambdaExtensions: Create a Criterion object to add to ICriteria later


My application creates a dynamically generated query at runtime based on user input by creating Criterion objects e.g:

ICriterion criterion = Restrictions.Eq("Name", "John");
......
detachedCriteriaSomewhereElse.Add(criterion);

How do I do this in NHLambdaExtensions?

what I really need to do is

ICriterion criterion = Restrictions.Eq<Person>(p=>  p.Name == "John");

but this isn't valid. Is there any way to do this?


Solution

  • With the NHLambdaExtensions you have the SQLExpression class that lets you do the following:

    ICriterion criterion = SqlExpression.CriterionFor<Person>(p => p.Name == "John");