如何在MongoDB C#Driver v2中抽象查询?

时间:2015-04-30 16:41:29

标签: c# .net linq mongodb mongodb-.net-driver

所以我曾经能够在版本1.x中对MongoCollectionIQueryable运行Linq查询

当我引用我的db库时,由于我所做的只是暴露IQueryable接口,我的调用代码永远不需要引用任何C#驱动程序的东西。好像我现在需要手动映射我的查询,或者公开过滤器定义。有没有“正确”的方法来做到这一点? (易于阅读/易于维护)

1 个答案:

答案 0 :(得分:2)

我建议不要抽象驱动程序。

你无法真正使用LINQ并交换底层数据库,并期望一切都能正常工作。

正如xanatos在评论中所建议的,您可以等待驱动程序在v2.1中添加对LINQ的支持,但请记住LINQ是同步的而驱动程序不是。这意味着您将阻止async代码(which is bad)或者您将使用驱动程序的特殊async方法(这实际上不是抽象)

在我看来,保持抽象似乎不值得付出努力。