似乎有很多方法可以应用存储库模式,这就是为什么我需要你的意见,以及对应用存储库模式的最佳方式的明确答案。它是通用存储库?但是存在一些问题,其中一些域对象不具有与其他域对象相同的行为。它是指定存储库?存储库之间的代码重复怎么样?它既是组合?如何使用di容器进行这两种实现?
由于
编辑:我正在使用的orm是实体框架4.很高兴有一个EF4的例子。
答案 0 :(得分:3)
Repository模式本身在那些需要规范的领域非常明确。其余部分是故意遗漏的,因为它取决于我的外部因素,例如您的编程语言,项目范围和您的个人编程风格。
换句话说:您似乎在询问如何应用模式的模式,但最终您将不得不在编程时做出自己的决定。
我会尝试回答您更具体的问题:
答案 1 :(得分:1)
This post by Gabriel Schenker是对存储库模式的一个很好的解释。他用NHibernate实现它(你没有说你正在使用哪个ORM)并提供了一个通用的基础库。对我来说,存储库模式与测试非常相关,能够伪造或模拟它,这篇博文也展示了如何制作自己的假货。
根据我的经验,大多数存储库都有一些共同的功能,例如: GetById,添加,删除。因此,拥有一个可以继承的基类是很有用的。当你开始考虑动态Linq查询以及如何测试它们时,它会变得有点棘手。