//public string Alias { get; set; }
 public ExternalValueExpression(Expression sourceExpression)
     : base(SqlExpressionType.ExternalValue, sourceExpression.Type)
 {
     SourceExpression = sourceExpression;
       SqlUse = ExternalValueSqlUse.NotUsed; //default
       //check if it is list parameter
       var type = sourceExpression.Type;
       if (type.IsListOrArray()) {
     if (type.IsArray)
       ListElementType = type.GetElementType();
     else
       ListElementType = type.GetGenericArguments()[0];
       }
 }
        public object LiteralValue;                // if Usage==Literal

        //public string Alias { get; set; }

        public ExternalValueExpression(Expression sourceExpression)   : base(SqlExpressionType.ExternalValue, sourceExpression.Type)
        {
            SourceExpression = sourceExpression;
            SqlUse           = ExternalValueSqlUse.NotUsed; //default
            //check if it is list parameter
            var type = sourceExpression.Type;

            if (type.IsListOrArray())
            {
                if (type.IsArray)
                {
                    ListElementType = type.GetElementType();
                }
                else
                {
                    ListElementType = type.GetGenericArguments()[0];
                }
            }
        }