protected virtual Expression <Func <TEntity, bool> > GetEntityPredicateExpression <TEntity>(
            IDictionary <string, object> whereArguments)
            where TEntity : class
        {
            var entityMapper  = MapperProvider.GetEntityMapper <TEntity>();
            var parameterExpr = Expression.Parameter(typeof(TEntity), "entity");

            var predicateBodyExpr = GetEntityPredicateExpression(entityMapper, parameterExpr, whereArguments);

            return(Expression.Lambda <Func <TEntity, bool> >(predicateBodyExpr, parameterExpr));
        }