在博客圈中似乎有一个共同的共识,即实体框架4的一个伟大功能是在通用ObjectSets之上创建通用存储库的能力。泛型存储库的示例实现基本上是ObjectSet的包装器,它只是简单地转换方法调用。没有任何有意义的逻辑在进行。经过一番思考后,我问自己:泛型存储库给我带来了什么好处,而ObjectSet本身还没有提供这些好处?ObjectSet具有所有必需的功能(CRUD)。因为它实现了IEnumerable (甚至是IQueryable),所以它提供了所有的Linq扩展,使得精确地指定您想要的数据变得非常容易。相对于简单地直接使用IObjectSet作为数据访问层的接口,到底有什么理由绕道某些IRepository?
感谢并致以问候
彼得。
发布于 2012-12-21 02:53:37
实现存储库模式的原因是为了使模拟数据源更容易进行自动化单元测试。
如果您的模型上下文实现了一个接口(比如IRepository),并且您的业务逻辑类允许通过构造函数(依赖项注入)传入IRepository对象,则单元测试可以创建它们自己的IRepository数据对象,并将这些数据对象传递给单元测试。
https://stackoverflow.com/questions/11228393
复制相似问题