Ejemplo n.º 1
0
        string GetField <TP>(Expression <Func <T, TP> > fieldSelector)
        {
            ExpressionTreeTransformer transformer =
                new ExpressionTreeTransformer(fieldSelector);

            return(transformer.Transform());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Add an expression which represents a relation. The query will try to fetch these related objects together with the main resultset.
        /// </summary>
        /// <typeparam name="TP">The type of the property - will be automatically determined by the compiler.</typeparam>
        /// <param name="expr"></param>
        public void AddPrefetch <TP>(Expression <Func <T, TP> > expr)
        {
            ExpressionTreeTransformer transformer =
                new ExpressionTreeTransformer((LambdaExpression)expr);
            string field = transformer.Transform();

            this.prefetches.Add(field);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Implements the Linq orderby ... descending statement
        /// </summary>
        /// <typeparam name="K"></typeparam>
        /// <param name="keySelector"></param>
        /// <returns></returns>
        public VirtualTable <T> OrderByDescending <K>(Expression <Func <T, K> > keySelector)
        {
            ExpressionTreeTransformer transformer =
                new ExpressionTreeTransformer((LambdaExpression)keySelector);
            string field = transformer.Transform();

            this.orderings.Add(new Query.DescendingOrder(field));
            return(this);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Implements the Linq where clause
        /// </summary>
        /// <param name="expr"></param>
        /// <returns></returns>
        public VirtualTable <T> Where(Expression <Func <T, bool> > expr)
        {
            // Transform the expression to NDOql
            ExpressionTreeTransformer transformer = new ExpressionTreeTransformer((LambdaExpression)expr);

            this.queryString = transformer.Transform();

            this.queryParameters.Clear();
            // Add the parameters collected by the transformer
            foreach (object o in transformer.Parameters)
            {
                this.queryParameters.Add(o);
            }

            return(this);
        }