/// <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; }
public ArrayAnyAllExpression ArrayAnyAll( SqlExpression operand, SqlExpression array, ArrayComparisonType arrayComparisonType, string @operator) => (ArrayAnyAllExpression)ApplyDefaultTypeMapping(new ArrayAnyAllExpression(operand, array, arrayComparisonType, @operator, null));