Search code examples
c#nhibernate

setparameter and like


I'd like to use NHibernates setparameter-feature, but I don't know how to achieve something like where Lastname like '%xyz%' (please notice the two %):

string hql = "... where Lastname like :Lastname";
// ...
hibQuery.SetParameter("Lastname", myValue);

Unfortunately, this doesn't result in an unsharp search. Either I write the lastname correctly, or nothing is found: 'Smi' -> Smith is not found.

How am I supposed to correct that?


Solution

  • You can do either

    hql = "... where Lastname like :Lastname";
    query.SetParameter("Lastname", '%' + myValue + '%');
    

    or

    hql = "... where Lastname like concat('%', :Lastname, '%')";
    query.SetParameter("Lastname", myValue);