Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MongoDB C#驱动程序v2中抽象查询?_C#_.net_Linq_Mongodb_Mongodb .net Driver - Fatal编程技术网

如何在MongoDB C#驱动程序v2中抽象查询?

如何在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的支持,但

因此,我曾经能够通过版本1.x中的
IQueryable
MongoCollection
运行Linq查询


当我引用我的db库时,因为我所做的只是公开
IQueryable
接口,所以我的调用代码从来不需要引用任何C#驱动程序。看起来我现在需要手动映射查询,或者公开过滤器定义。有没有“正确”的方法?(易于阅读/易于维护)

我建议不要对驱动程序进行抽象化

您不能真正使用LINQ和交换底层数据库,而期望一切都能正常工作

正如xanatos在评论中所建议的,您可以等待驱动程序在v2.1中添加对LINQ的支持,但请记住LINQ是同步的,而驱动程序不是。这意味着您要么阻塞
async
code(),要么使用驱动程序的特殊
async
方法(这不是真正的抽象)


在我看来,维护抽象似乎不值得付出这样的努力

您可以等待支持IQueryable?的下一个版本:-)它应该出现在v2.1中