Редактиран отговор:
Разбрах, че вече има официален начин да получа заявката Mongo от заявка LINQ (трябваше да знам!). Трябва да намалите IQueryable
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
Оригинален отговор:
В момента няма официално поддържан начин за това, но в близко бъдеще възнамеряваме да улесним да разберем към коя заявка на MongoDB е била съпоставена заявката LINQ.
В краткосрочен план можете да използвате следните недокументирани вътрешни методи, за да разберете към каква заявка на MongoDB е съпоставена заявката LINQ:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();
Но в даден момент може да се наложи да преминете от тези недокументирани методи към официално поддържани методи (недокументираните методи може да се променят или преименуват в бъдеще).