public IOrderedSpecification <T> ThenBy <T, K>(IOrderedSpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order)
        {
            MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec;

            ((IList <QueryOrderExpression>)mongoSpec.ThenByExpressions).Add(QueryOrderExpression.CreateTheneBy(keySelector, order));
            return(mongoSpec);
        }
        public IOrderedSpecification <T> OrderBy <T, K>(ISpecification <T> spec, Expression <Func <T, K> > keySelector, QueryOrder order)
        {
            MongoSpecification <T> mongoSpec = (MongoSpecification <T>)spec;

            mongoSpec.OrderByExpression = QueryOrderExpression.CreateOrderBy(keySelector, order);
            return(mongoSpec);
        }