コード例 #1
0
 protected override Expression VisitIndexedColumn(SqlIndexedColumnExpression expression)
 {
     this.hashCode ^= expression.LowercaseIndex ? -692148566 : 0;
     this.hashCode ^= expression.IncludeOnly ? 558869369 : 0;
     this.hashCode ^= expression.SortOrder.GetHashCode();
     return(base.VisitIndexedColumn(expression));
 }
コード例 #2
0
        protected virtual Expression VisitIndexedColumn(SqlIndexedColumnExpression indexedColumnExpression)
        {
            var newColumn = (SqlColumnExpression)this.Visit(indexedColumnExpression.Column);

            if (newColumn != indexedColumnExpression.Column)
            {
                return(new SqlIndexedColumnExpression(newColumn, indexedColumnExpression.SortOrder, indexedColumnExpression.LowercaseIndex));
            }

            return(indexedColumnExpression);
        }
コード例 #3
0
        protected override Expression VisitIndexedColumn(SqlIndexedColumnExpression indexedColumnExpression)
        {
            if (indexedColumnExpression.LowercaseIndex)
            {
                this.Write("(lower(");
            }

            this.Visit(indexedColumnExpression.Column);

            if (indexedColumnExpression.LowercaseIndex)
            {
                this.Write("))");
            }

            switch (indexedColumnExpression.SortOrder)
            {
            case SortOrder.Descending:
            this.Write(" DESC");
            break;
            case SortOrder.Ascending:
            this.Write(" ASC");
            break;
            case SortOrder.Unspecified:
            break;
            }

            return indexedColumnExpression;
        }
コード例 #4
0
 protected override Expression VisitIndexedColumn(SqlIndexedColumnExpression expression)
 {
     this.hashCode ^= expression.LowercaseIndex ? -692148566 : 0;
     this.hashCode ^= expression.SortOrder.GetHashCode();
     return base.VisitIndexedColumn(expression);
 }
コード例 #5
0
        protected override Expression VisitIndexedColumn(SqlIndexedColumnExpression expression)
        {
            SqlIndexedColumnExpression current;
            if (!TryGetCurrent(expression, out current))
            {
                return expression;
            }

            if (!(this.result &= current.LowercaseIndex == expression.LowercaseIndex))
            {
                return expression;
            }

            if (!(this.result &= current.SortOrder == expression.SortOrder))
            {
                return expression;
            }

            if (!(this.result &= current.NodeType == expression.NodeType))
            {
                return expression;
            }

            if (!(this.result &= current.Type == expression.Type))
            {
                return expression;
            }

            this.currentObject = current.Column;
            this.VisitColumn(expression.Column);
            if (!this.result)
            {
                return expression;
            }

            this.currentObject = current;
            return expression;
        }
コード例 #6
0
		protected virtual Expression VisitIndexedColumn(SqlIndexedColumnExpression indexedColumnExpression)
		{
			var newColumn = (SqlColumnExpression)this.Visit(indexedColumnExpression.Column);

			if (newColumn != indexedColumnExpression.Column)
			{
				return new SqlIndexedColumnExpression(newColumn, indexedColumnExpression.SortOrder, indexedColumnExpression.LowercaseIndex);
			}

			return indexedColumnExpression;
		}