public TResult Execute <TCriteria, TResult>(TCriteria criteria) { var query = _queryFactory.Create <IQuery <TCriteria, TResult> >(); try { return(query.Execute(criteria)); } finally { _queryFactory.Release(query); } }