Shaolinq.Persistence.Linq.Expressions.SqlColumnExpression.ChangeToNullable C# (CSharp) Method

ChangeToNullable() public method

public ChangeToNullable ( ) : SqlColumnExpression
return SqlColumnExpression
		public SqlColumnExpression ChangeToNullable()
		{
			var nullableType = this.Type.MakeNullable();

			return nullableType == this.Type ? this : new SqlColumnExpression(nullableType, this.SelectAlias, this.Name, this.Special);
		}

Usage Example

		protected override Expression VisitColumn(SqlColumnExpression columnExpression)
		{
			if (!aliases.Contains(columnExpression.SelectAlias))
			{
				var nullableType = columnExpression.Type.MakeNullable();

				if (nullableType == columnExpression.Type)
				{
					replacedExpressions.Add(columnExpression);

					return new SqlConstantPlaceholderExpression(this.placeholderCount++, Expression.Constant(null, columnExpression.Type.MakeNullable()));
				}
				else
				{
					replacedExpressions.Add(columnExpression.ChangeToNullable());

					return Expression.Convert(new SqlConstantPlaceholderExpression(this.placeholderCount++, Expression.Constant(null, columnExpression.Type.MakeNullable())), columnExpression.Type);
				}
			}

			return base.VisitColumn(columnExpression);
		}