示例#1
0
 /// <summary>
 /// expression'I doldurup yollar.
 /// </summary>
 /// <param name="parameter"></param>
 /// <param name="prop"></param>
 /// <param name="val"></param>
 /// <returns></returns>
 private Expression _getExpresion(LinqExpressionParameter parameter, Expression prop, ConstantExpression val)
 {
     try
     {
         Expression exp = null;
         //Tek kez koşul sağlanırsa çıkışı kendisi olsun diye, zaten ikinci kez girer ve aşağıdaki else'e girerken güncellenecek.
         if (parameter.ExpressionType == ExpressionTypes.Equal)
         {
             exp = Expression.Equal(prop, val);
         }
         else if (parameter.ExpressionType == ExpressionTypes.GreaterThanOrEqual)//>=
         {
             exp = Expression.GreaterThanOrEqual(prop, val);
         }
         else if (parameter.ExpressionType == ExpressionTypes.LessThanOrEqual)//<=
         {
             exp = Expression.LessThanOrEqual(prop, val);
         }
         else if (parameter.ExpressionType == ExpressionTypes.NotEqual)//!=
         {
             exp = Expression.NotEqual(prop, val);
         }
         return(exp);
     }
     catch (Exception)
     {
         return(null);
     }
 }
示例#2
0
 /// <summary>
 /// Sorguya girin her eleman için and mi or mu kontrolünü sağlar.
 /// </summary>
 /// <param name="parameter"></param>
 /// <param name="andExp"></param>
 /// <param name="expRight"></param>
 /// <returns></returns>
 private BinaryExpression _getQueryType(LinqExpressionParameter parameter, BinaryExpression andExp, Expression expRight)
 {
     if (parameter.QueryType == QueryTypes.AndAlso)
     {
         andExp = Expression.AndAlso(andExp, expRight);
     }
     else if (parameter.QueryType == QueryTypes.OrElse)
     {
         andExp = Expression.OrElse(andExp, expRight);
     }
     return(andExp);
 }
示例#3
0
        /// <summary>
        /// İlgili parametrenin tip dönüşümünü yapar veriyi doldurup yollar.
        /// </summary>
        /// <param name="parameter"></param>
        /// <param name="prop"></param>
        /// <returns></returns>
        private ConstantExpression _getType(LinqExpressionParameter parameter, Expression prop)
        {
            try
            {
                ConstantExpression val = null;
                Type type = prop.Type;

                if (type == typeof(Int32))
                {
                    val = Expression.Constant(int.Parse(parameter.Value));
                }
                else if (type == typeof(float))
                {
                    val = Expression.Constant(float.Parse(parameter.Value));
                }
                else if (type == typeof(double))
                {
                    val = Expression.Constant(double.Parse(parameter.Value));
                }
                else if (type == typeof(bool))
                {
                    val = Expression.Constant(bool.Parse(parameter.Value));
                }
                else if (type == typeof(string))
                {
                    val = Expression.Constant(parameter.Value.ToString());
                }
                else if (type == typeof(DateTime))
                {
                    val = Expression.Constant(DateTime.Parse(parameter.Value));
                }
                else if (type == typeof(TimeSpan))
                {
                    val = Expression.Constant(TimeSpan.Parse(parameter.Value));
                }
                return(val);
            }
            catch (Exception)
            {
                return(null);
            }
        }