MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Traduire Queryable en IMongoQuery

Réponse modifiée :

J'ai réalisé qu'il existe déjà un moyen officiel d'obtenir la requête Mongo à partir d'une requête LINQ (j'aurais dû le savoir !). Vous devez convertir le IQueryable en MongoQueryable pour accéder à la méthode GetMongoQuery :

var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();

Réponse originale :

Pour le moment, il n'existe aucun moyen officiellement pris en charge de le faire, mais dans un avenir proche, nous avons l'intention de faciliter la recherche de la requête MongoDB à laquelle la requête LINQ a été mappée.

À court terme, vous pouvez utiliser les méthodes internes non documentées suivantes pour savoir à quelle requête MongoDB la requête LINQ est mappée :

var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();

Mais à un moment donné, vous devrez peut-être passer de ces méthodes non documentées à des méthodes officiellement prises en charge (les méthodes non documentées peuvent changer ou être renommées à l'avenir).