मुझे अंततः इस मुद्दे का हल मिल गया, बहुत खुदाई के बाद मैंने पाया कि toLower()
mongoDb linq प्रदाता में विधियों को लागू नहीं किया गया है इसलिए मुझे MongoQuery का उपयोग करने के लिए बदलना पड़ा
मैंने स्ट्रिंग और सूची के लिए कुछ एक्सटेंशन विधियां बनाई हैं जहां यह स्ट्रिंग या सूची को स्रोत के रूप में लेता है और इसे एक बीएसओएन नियमित अभिव्यक्ति में परिवर्तित करता है
internal static List<BsonValue> ConvertToCaseInsensitiveRegexList(this IEnumerable<string> source)
{
return source.Select(range => new BsonRegularExpression("/^" + range.Replace("+", @"\+") + "$/i")).Cast<BsonValue>().ToList();
}
internal static List<BsonValue> ConvertToEndsWithRegexList(this IEnumerable<string> source)
{
return source.Select(range => new BsonRegularExpression("/" + range.Replace("+", @"\+") + "$/i")).Cast<BsonValue>().ToList();
}
internal static BsonRegularExpression ToCaseInsensitiveRegex(this string source)
{
return new BsonRegularExpression("/^" + source.Replace("+", @"\+") + "$/i");
}
और फिर उनका उपयोग इस तरह किया जाता है...
var colours = new List<string> { "Red", "blue", "white" };
var query = Query<myObject>.In(v => v.Colour, colours.ConvertToCaseInsensitiveRegexList());
this.Find(query).ToList();