我是存储库模式的新手,在网上做了很多阅读之后,我对正在发生的事情有了一个粗略的了解,但似乎存在思想冲突。
一个是 IRepository 应该返回的内容。
我只想处理 Pocos,所以我将为每个聚合根都有一个 IRepository 实现,如下所示:
public class OrangeRepository: IOrangeRepository
{
public Orange GetOrange(IOrangeCriteria criteria);
}
其中 IOrangeCriteria 采用一些特定于查找橙色的参数。
我拥有的另一件事是许多数据后端——这就是我首先进入这种模式的原因。我想我将为每个人都有一个实现,例如
OrangeRepositoryOracle、OrangeRepositorySQL、OrangeRepositoryMock 等
我想让它保持打开状态,以便我可以使用 EF 或 NHibernate - 如果我的 IOrangeRepository 处理 POCO,那么我将通过实现 OrangeRepositoryNHibernate 等将其封装在存储库本身中。
我在正确的路线上吗?
谢谢
编辑:感谢您的反馈,目前我没有其他人可以提出这些想法,因此不胜感激!