System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.PreparePattern C# (CSharp) Method

PreparePattern() private method

Prepare the given input patternValue into a pattern to be used in a LIKE expression by first escaping it by the provider and then appending "%" and the beginging/end depending on whether insertPercentAtStart/insertPercentAtEnd is specified.
private PreparePattern ( string patternValue, bool insertPercentAtStart, bool insertPercentAtEnd, bool &specifyEscape ) : string
patternValue string
insertPercentAtStart bool
insertPercentAtEnd bool
specifyEscape bool
return string
        private string PreparePattern(string patternValue, bool insertPercentAtStart, bool insertPercentAtEnd, out bool specifyEscape)
        {
            // Dev10 #800466: The pattern value if originating from a parameter value could be null
            if (patternValue == null)
            {
                specifyEscape = false;
                return null;
            }

            var escapedPatternValue = ProviderManifest.EscapeLikeArgument(patternValue);

            if (escapedPatternValue == null)
            {
                throw new ProviderIncompatibleException(Strings.ProviderEscapeLikeArgumentReturnedNull);
            }

            specifyEscape = patternValue != escapedPatternValue;

            var patternBuilder = new StringBuilder();
            if (insertPercentAtStart)
            {
                patternBuilder.Append("%");
            }
            patternBuilder.Append(escapedPatternValue);
            if (insertPercentAtEnd)
            {
                patternBuilder.Append("%");
            }

            return patternBuilder.ToString();
        }