Ich versuche, insensentive Übereinstimmung mit einer MySQL-Tabelle während der Verwendung von Dapper-Erweiterungen zu tun, aber ich bekomme eine Null-Ausnahme für den Feldnamen beim Versuch, es UpperCase innerhalb der Linq-Ausdruck zu machen :Vergleich zwischen Groß- und Kleinschreibung in DapperExtensions-Prädikat
Hier ist der Code:
var predicateGroup = new PredicateGroup { Operator = GroupOperator.Or, Predicates = new List<IPredicate>() };
var term = "term";
if (term.IsNotNullOrEmpty())
{
predicateGroup.Predicates.Add(Predicates.Field<Company>(p => p.company_code, Operator.Like, string.Format("%{0}%", term)));
predicateGroup.Predicates.Add(Predicates.Field<Company>(p => p.company_name.ToUpper(), Operator.Like, string.Format("%{0}%", term)));
}
return Count<Company>(predicateGroup, TdsAuthConnectionString);
weiß jemand, wie ich DapperExtensions Prädikate zu tun, einen Fall unempfindlich Spiel verwenden kann?
Vielen Dank für jede Hilfe, codenewbie
Danke. Wir benutzen mysql. Ich werde in die Einstellungen schauen, aber ich weiß nicht, ob ich irgendetwas ändern kann. Ich melde mich zurück. – codenewbie
Leider kann ich die db nicht ändern. Gibt es eine Möglichkeit innerhalb des Prädikats oder anderswo, dass ich "vorschlagen" kann, dass die Abfrage "UPPER (company_code)" verwendet? – codenewbie
Ich habe den IFieldPredicate-Code in der DapperExtensions Codebase @ https://github.com/tmsmith/Dapper-Extensions/blob/master/DapperExtensions/Predicates.cs durchgesehen und kann nicht sehen, wie es gemacht werden könnte ohne einen ganz neuen Prädikat-Typ zu implementieren. Sie könnten stattdessen für diese spezielle Abfrage zurück zu Dapper wechseln. Sie können in Ihrer App frei zwischen Dapper und DapperExtensions (und DapperContrib usw.) wechseln, wenn eine Bibliothek Ihren Anforderungen nicht entspricht. –