Edited Antwort:
Ich erkennen, dass es bereits ein offizieller Weg, um die Mongo Abfrage von einer LINQ-Abfrage zu bekommen (ich habe wissen müssen,!). Sie haben die IQueryable < T> zu einem MongoQueryable < T> niedergeschlagenen Zugriff auf die GetMongoQuery Methode zu erhalten:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
Ursprüngliche Antwort:
Im Moment gibt es keine offiziell Weise zu tun, unterstützt In naher Zukunft wollen wir jedoch herausfinden, worauf MongoDB die LINQ-Abfrage abfragt.
Auf kurze Sicht die folgenden undokumentiert interne Methoden nutzen könnten, um herauszufinden, was MongoDB die LINQ-Abfrage Abfrage wird abgebildet:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();
Aber irgendwann Sie könnten von diesen nicht dokumentierte Methoden wechseln müssen offiziell unterstützte Methoden (die undokumentierten Methoden könnten sich in Zukunft ändern oder umbenannt werden).
diese leider wegwirft alle orderby Anrufe in der ursprünglichen Linq-Anweisung. Sie müssen sie dann wieder Mongo-Stil anwenden. – Nashenas