public static IODataClient <TModel> Where <TModel>(this IODataClient <TModel> client, Expression <Func <TModel, bool> > expression) where TModel : class
        {
            var o = client.Clone();

            o.QueryOptions.WhereExpressions.Add(expression);
            return(o);
        }
        public static IODataClient <TModel> Skip <TModel>(this IODataClient <TModel> client, int skip) where TModel : class
        {
            var o = client.Clone();

            o.QueryOptions.Skip = skip;
            return(o);
        }
        public static IODataClient <TModel> Take <TModel>(this IODataClient <TModel> client, int take) where TModel : class
        {
            var o = client.Clone();

            o.QueryOptions.Take = take;
            return(o);
        }
        public static IODataClient <TModel> ThenByDesc <TModel>(this IODataClient <TModel> client, Expression <Func <TModel, object> > expression) where TModel : class
        {
            var o = client.Clone();

            o.QueryOptions.OrderOptions.Add(new OrderOption <TModel>
            {
                Expression     = expression,
                OrderDirection = OrderDirection.Desc
            });
            return(o);
        }