Example #1
0
 /// <summary>
 /// Constructs a <see cref="ArrayAnyAllExpression"/>.
 /// </summary>
 /// <param name="arrayComparisonType">The comparison type.</param>
 /// <param name="operatorSymbol">The operator symbol to the array expression.</param>
 /// <param name="operand">The value to find.</param>
 /// <param name="array">The array to search.</param>
 /// <exception cref="ArgumentNullException" />
 public ArrayAnyAllExpression(
     ArrayComparisonType arrayComparisonType,
     [NotNull] string operatorSymbol,
     [NotNull] Expression operand,
     [NotNull] Expression array)
 {
     ArrayComparisonType = arrayComparisonType;
     Operator            = Check.NotNull(operatorSymbol, nameof(operatorSymbol));
     Operand             = Check.NotNull(operand, nameof(operand));
     Array = Check.NotNull(array, nameof(array));
 }
        /// <summary>
        /// Constructs a <see cref="ArrayAnyAllExpression"/>.
        /// </summary>
        /// <param name="arrayComparisonType">The comparison type.</param>
        /// <param name="operator">The operator symbol to the array expression.</param>
        /// <param name="operand">The value to find.</param>
        /// <param name="array">The array to search.</param>
        /// <param name="typeMapping">The type mapping for the expression.</param>
        public ArrayAnyAllExpression(
            [NotNull] SqlExpression operand,
            [NotNull] SqlExpression array,
            ArrayComparisonType arrayComparisonType,
            [NotNull] string @operator,
            RelationalTypeMapping typeMapping)
            : base(typeof(bool), typeMapping)
        {
            if (!array.Type.IsArray && !array.Type.IsGenericType && array.Type.GetGenericTypeDefinition() != typeof(List <>))
            {
                throw new ArgumentException("Array expression must be of type array or List<>", nameof(array));
            }

            Operand             = operand;
            Array               = array;
            ArrayComparisonType = arrayComparisonType;
            Operator            = @operator;
        }
Example #3
0
 public ArrayAnyAllExpression ArrayAnyAll(
     SqlExpression operand,
     SqlExpression array,
     ArrayComparisonType arrayComparisonType,
     string @operator)
 => (ArrayAnyAllExpression)ApplyDefaultTypeMapping(new ArrayAnyAllExpression(operand, array, arrayComparisonType, @operator, null));