Je reviens pour revoir cela après 4 ans parce que même si ma supposition originale fonctionnait, cela fonctionnait dans le mauvais sens, c'est-à-dire qu'il retirait tous les enregistrements de Mongo, puis les filtrait en mémoire et pour aggraver les choses, il faisait un appel synchrone dans la base de données, ce qui est toujours une mauvaise idée.
La magie opère dans la méthode d'extension d'extension de LinqKit
Cela aplatit l'arbre d'expression d'invocation en quelque chose que le pilote Mongo peut comprendre et donc agir.
.Where(predicate.Expand())