MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Dynamisches Linq-Prädikat löst einen nicht unterstützten Filterfehler mit dem C#-MongoDB-Treiber aus

Ich komme zurück, um dies nach 4 Jahren noch einmal zu wiederholen, denn während meine ursprüngliche Vermutung funktionierte, funktionierte sie falsch, nämlich alle Datensätze aus Mongo zurückzuziehen und sie dann im Speicher zu filtern und um die Dinge zu verkomplizieren, machte es einen synchronen Anruf in die Datenbank, was immer eine schlechte Idee ist.

Die Magie geschieht in der Expand-Erweiterungsmethode von LinqKit

Dadurch wird der Ausdrucksbaum des Aufrufs in etwas abgeflacht, das der Mongo-Treiber verstehen und auf das er reagieren kann.

.Where(predicate.Expand())