internal bool HasTypeConstraint(string typeName) { if (_operator == ExpressionType.And) { return(_left.HasTypeConstraint(typeName) || _right.HasTypeConstraint(typeName)); } else if (this.Function != null && this.Function.FunctionName == ODataLiteral.IsOf) { return(this.Function.Arguments.Last().HasTypeConstraint(typeName)); } else if (this.Value != null) { return(this.Value is Type && (this.Value as Type).Name == typeName); } else { return(false); } }