3

博客圈似乎有一个共同的共识,即 Entity Framework 4 的一大特点是能够在通用 ObjectSet 之上创建通用存储库。通用存储库的示例实现基本上是围绕 ObjectSet 的包装器,它只是转换方法调用。没有有意义的逻辑在发生。经过一番思考后,我开始问自己:通用存储库给我带来了什么好处,而 ObjectSet 本身还没有提供?ObjectSet 具有所有必需的功能 (CRUD)。因为它实现了 IEnumerable(甚至是 IQueryable),它提供了所有的 Linq 扩展,可以很容易地准确地指定你想要的数据。究竟是什么证明了通过一些 IRepository 绕道而行,

谢谢并恭祝安康,

彼得。

4

1 回答 1

0

实现存储库模式的原因是为了使模拟数据源更容易进行自动化单元测试。

如果您的模型上下文实现了一个接口(例如 IRepository),并且您的业务逻辑类允许通过构造函数(依赖注入)传入 IRepository 对象,则单元测试可以创建自己的 IRepository 数据对象并将它们传递给单元测试。这意味着您可以在没有数据库支持的情况下进行单元测试,这比针对外部数据库进行测试更简单、更可靠。

于 2012-12-20T18:53:37.433 回答