Wracam do tego po 4 latach, ponieważ moje pierwotne przypuszczenie zadziałało, ale zadziałało w zły sposób, który polegał na wycofywaniu wszystkich rekordów z Mongo, a następnie filtrowaniu ich w pamięci i składaniu spraw, wykonywał połączenie synchroniczne do bazy danych, co zawsze jest złym pomysłem.
Magia dzieje się w metodzie rozszerzenia LinqKit
To spłaszcza drzewo wyrażeń wywołania do czegoś, co kierowca Mongo może zrozumieć i w ten sposób działać.
.Where(predicate.Expand())