Redigerat svar:
Jag insåg att det redan finns ett officiellt sätt att få Mongo-frågan från en LINQ-fråga (jag borde ha vetat det!). Du måste nedkasta IQueryable
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
Ursprungligt svar:
För närvarande finns det inget officiellt stöd för att göra det, men inom en snar framtid avser vi att göra det enkelt att ta reda på vilken MongoDB-fråga LINQ-frågan mappades till.
På kort sikt kan du använda följande odokumenterade interna metoder för att ta reda på vilken MongoDB-fråga LINQ-frågan är mappad till:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();
Men någon gång kan du behöva byta från dessa odokumenterade metoder till officiellt stödda metoder (de odokumenterade metoderna kan ändras eller byta namn i framtiden).