请考虑以下代码
var q = from e in myCollection.AsQueryable<Entity>() where e.Name == "test" select e;
实际查询非常复杂,我不喜欢使用QueryBuilder而不是LINQ来构建它.
所以我想把它转换回IMongoQuery在myCollection.Group()调用中使用,因为没有通过LINQ的GroupBy支持.
可能吗?
解决方法
编辑答案:
我意识到已经有一种从LINQ查询获取Mongo查询的正式方法(我应该知道!).你必须将IQueryable< T>到MongoQueryable< T>获取访问GetMongoQuery方法:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e; var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
原来的答案:
目前还没有正式支持的方式来做,但是在不久的将来,我们打算让您轻松找出LINQ查询所映射的MongoDB查询.
在短期内,您可以使用以下未记录的内部方法来查找LINQ查询映射到的MongoDB查询:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e; var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery); var mongoQuery = translatedQuery.BuildQuery();
原文地址:https://www.jb51.cc/csharp/96083.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。