예제 #1
0
        internal static TypeUsage RequireComparableCollectionArguments <TExpressionType>(
            DbExpression left,
            DbExpression right)
        {
            TypeUsage typeUsage = ArgumentValidation.RequireCollectionArguments <TExpressionType>(left, right);

            if (!TypeHelpers.IsSetComparableOpType(TypeHelpers.GetElementTypeUsage(left.ResultType)))
            {
                throw new ArgumentException(Strings.Cqt_InvalidTypeForSetOperation((object)TypeHelpers.GetElementTypeUsage(left.ResultType).Identity, (object)typeof(TExpressionType).Name), nameof(left));
            }
            if (!TypeHelpers.IsSetComparableOpType(TypeHelpers.GetElementTypeUsage(right.ResultType)))
            {
                throw new ArgumentException(Strings.Cqt_InvalidTypeForSetOperation((object)TypeHelpers.GetElementTypeUsage(right.ResultType).Identity, (object)typeof(TExpressionType).Name), nameof(right));
            }
            return(typeUsage);
        }