c# - 使用 RavenDB 实现存储库和服务模式

标签 c# oop design-patterns ravendb

我在实现 repository and service pattern 时遇到一些困难在我的 RavenDB 项目中。主要问题是我的存储库界面应该是什么样子,因为在 RavenDB 中我使用了几个索引来进行查询。

假设我需要获取 parentid 等于 1 的所有项目。一种方法是使用 IQueryable List() 并获取所有文档,然后添加一个 where 子句来选择 parentid 等于 1 的项目。这看起来像一个坏主意,因为我不能在 RavenDB 中使用任何索引功能。所以另一种方法是在存储库中使用类似 IEnumerable Find(string index, Func predicate) 的方法,但这似乎也是一个坏主意,因为它不够通用,如果我要从 RavenDB 更改,则需要我实现此方法到一个普通的 sql 服务器。

那么我怎样才能实现一个通用的存储库,同时仍然获得 RavenDB 中索引的好处呢?

最佳答案

这篇文章很好地总结了这一切:

http://novuscraft.com/blog/ravendb-and-the-repository-pattern

关于c# - 使用 RavenDB 实现存储库和服务模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5397777/

相关文章:

c++ - 使用虚函数访问私有(private)函数

design-patterns - "Adapter"或 "adaptor"?

javascript - 这种语法差异有什么影响(如果有)?

c# - 比较并删除数据表中所有相似行的方法

c# - ServiceStack - 工作单元和结构图

c++ - 在事先不知道特定成员函数的情况下从另一个类访问成员函数

c++ - 仅在 Manager 类中创建对象

c# - 通过 C# 在 QuickBooks 中创建新项目

c# - 调试器不会因异步方法中的异常而中断/停止

javascript - 在 javascript 中扩展 Promise