private IQueryable <TEntity> ApplyFilterRule <TEntity>(IQueryable <TEntity> queryable, IFilterRule filterRule) { var lambda = filterRule.GetExpression <TEntity>(); MethodCallExpression result = Expression.Call( typeof(Queryable), "Where", new[] { queryable.ElementType }, queryable.Expression, lambda); return(queryable.Provider.CreateQuery <TEntity>(result)); }