如何在MongoDB C#驱动程序v2中抽象查询?
因此,我曾经能够通过版本1.x中的如何在MongoDB C#驱动程序v2中抽象查询?,c#,.net,linq,mongodb,mongodb-.net-driver,C#,.net,Linq,Mongodb,Mongodb .net Driver,因此,我曾经能够通过版本1.x中的IQueryable对MongoCollection运行Linq查询 当我引用我的db库时,因为我所做的只是公开IQueryable接口,所以我的调用代码从来不需要引用任何C#驱动程序。看起来我现在需要手动映射查询,或者公开过滤器定义。有没有“正确”的方法?(易于阅读/易于维护)我建议不要对驱动程序进行抽象化 您不能真正使用LINQ和交换底层数据库,而期望一切都能正常工作 正如xanatos在评论中所建议的,您可以等待驱动程序在v2.1中添加对LINQ的支持,但
IQueryable
对MongoCollection
运行Linq查询
当我引用我的db库时,因为我所做的只是公开
IQueryable
接口,所以我的调用代码从来不需要引用任何C#驱动程序。看起来我现在需要手动映射查询,或者公开过滤器定义。有没有“正确”的方法?(易于阅读/易于维护)我建议不要对驱动程序进行抽象化
您不能真正使用LINQ和交换底层数据库,而期望一切都能正常工作
正如xanatos在评论中所建议的,您可以等待驱动程序在v2.1中添加对LINQ的支持,但请记住LINQ是同步的,而驱动程序不是。这意味着您要么阻塞async
code(),要么使用驱动程序的特殊async
方法(这不是真正的抽象)
在我看来,维护抽象似乎不值得付出这样的努力 您可以等待支持IQueryable?的下一个版本:-)它应该出现在v2.1中