QueryOver
support that with this syntax:
var user = session.QueryOver<User>()
.WhereRestrictionOn(x => x.Name).IsInsensitiveLike("TommyLike")
This must work:
public T SingleOrDefault(Func<IQueryOver<T, T>, IQueryOver<T, T>> filter)
{
return Transact(() =>
{
var query = session.QueryOver<T>();
query = filter(query);
return query.SingleOrDefault();
});
}
Calling it is almost the same:
var result = _kernel.Get<IReposity<User>>.SingleOrDefault(
query => query.WhereRestrictionOn(x => x.Name).IsInsensitiveLike("TommyLike"));