Skip to content

Commit a5aa944

Browse files
staywellandycraiggwilson
authored andcommitted
Added ToLowerInvariant ToUpperInvariant
Added ToLowerInvariant and ToUpperInvariant string methods to the recognized linq string methods
1 parent 9533bb3 commit a5aa944

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Driver/Linq/Translators/PredicateTranslator.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,7 +1098,7 @@ private IMongoQuery BuildStringCaseInsensitiveComparisonQuery(Expression variabl
10981098
}
10991099

11001100
var methodName = methodExpression.Method.Name;
1101-
if ((methodName != "ToLower" && methodName != "ToUpper") ||
1101+
if ((methodName != "ToLower" && methodName != "ToUpper" && methodName != "ToLowerInvariant" && methodName != "ToUpperInvariant") ||
11021102
methodExpression.Object == null ||
11031103
methodExpression.Type != typeof(string) ||
11041104
methodExpression.Arguments.Count != 0)
@@ -1119,7 +1119,9 @@ private IMongoQuery BuildStringCaseInsensitiveComparisonQuery(Expression variabl
11191119
var stringValue = serializedValue.AsString;
11201120
var stringValueCaseMatches =
11211121
methodName == "ToLower" && stringValue == stringValue.ToLower(CultureInfo.InvariantCulture) ||
1122-
methodName == "ToUpper" && stringValue == stringValue.ToUpper(CultureInfo.InvariantCulture);
1122+
methodName == "ToLowerInvariant" && stringValue == stringValue.ToLower(CultureInfo.InvariantCulture) ||
1123+
methodName == "ToUpper" && stringValue == stringValue.ToUpper(CultureInfo.InvariantCulture) ||
1124+
methodName == "ToUpperInvariant" && stringValue == stringValue.ToUpper(CultureInfo.InvariantCulture);
11231125

11241126
if (stringValueCaseMatches)
11251127
{
@@ -1208,9 +1210,15 @@ private IMongoQuery BuildStringQuery(MethodCallExpression methodCallExpression)
12081210
case "ToLower":
12091211
caseInsensitive = true;
12101212
break;
1213+
case "ToLowerInvariant":
1214+
caseInsensitive = true;
1215+
break;
12111216
case "ToUpper":
12121217
caseInsensitive = true;
12131218
break;
1219+
case "ToUpperInvariant":
1220+
caseInsensitive = true;
1221+
break;
12141222
case "Trim":
12151223
trimStart = true;
12161224
trimEnd = true;

0 commit comments

Comments
 (0)