Example #1
0
        /// <summary>
        /// Order.Qty > 100 and Order.Customer = "Zhang San" 
        /// 100>Order.Price
        /// </summary>
        /// <returns></returns>
        public ExpressionContext On()
        {
            var orderParam = new ParameterExpression()
            {
                Name = "Order",
                Alia = "Dest",
                Type = typeof(Order)
            };
          
            var exp = orderParam.Member("Qty")
                    .GT(new ConstantExpression(100))
                .And(orderParam.Member("Customer")
                    .Equal(new ConstantExpression("Zhang San")));

            return new ExpressionContext
            {
                Parameters = new List<ParameterExpression> { orderParam },
                Expression = exp,
            };
        }
Example #2
0
        /// <summary>
        /// Src join Dest on Src.Id = Dest.SourceOrder
        /// </summary>
        /// <returns></returns>
        public Expression Join()
        {
            var fromParam = new ParameterExpression()
            {
                Name = "Order",
                Alia = "Src",
                Type = typeof(Order)
            };


            var destParam = new ParameterExpression()
            {
                Name = "Order",
                Alia = "Dest",
                Type = typeof(Order)
            };
            var joinOnCriteria = fromParam.Member("Id")
                .Equal(destParam.Member("SourceOrder"));

            var join = fromParam.Join(destParam, joinOnCriteria);
            return join;

        }