Връщам се, за да преразгледам това след 4 години, защото докато първоначалното ми предположение работеше, то работеше по грешен начин, който беше, че изтегляше всички записи от Mongo и след това ги филтрираше в паметта и за да усложни нещата, правеше синхронно повикване в базата данни, което винаги е лоша идея.
Магията се случва в метода за разширение на LinqKit
Това изравнява дървото на израза за извикване в нещо, което драйверът на Mongo може да разбере и по този начин да действа.
.Where(predicate.Expand())