Ik kom terug om dit na 4 jaar opnieuw te bekijken, want hoewel mijn oorspronkelijke veronderstelling werkte, werkte het de verkeerde kant op, namelijk het terughalen van alle records van Mongo en ze vervolgens in het geheugen filteren en om de zaken nog ingewikkelder te maken, maakte het een synchrone oproep in de database, wat altijd een slecht idee is.
De magie gebeurt in de uitbreidingsmethode van LinqKit
Dat maakt de aanroepexpressieboom plat tot iets dat de Mongo-chauffeur kan begrijpen en dus kan handelen.
.Where(predicate.Expand())