前段时间我开始使用 EF 作为 DAL,并且从教程和视频中了解了存储库模式和工作单元模式。
关于存储库,我了解到它是对 DAL 的抽象,它将业务逻辑与数据访问代码分开。此外,它避免了数据访问代码的声誉并有助于单元测试。
我了解存储库模式是制作 DAL 的一种特殊方式。但它带来了什么?我没有得到。我的困惑只是制作一个 DAL(一个单独的类库/项目),它也会带来这些好处(将数据访问逻辑与业务逻辑分开,保存数据访问代码的声誉,帮助单元测试等)。
可能我仍然缺少存储库模式的好处。请指导我。
前段时间我开始使用 EF 作为 DAL,并且从教程和视频中了解了存储库模式和工作单元模式。
关于存储库,我了解到它是对 DAL 的抽象,它将业务逻辑与数据访问代码分开。此外,它避免了数据访问代码的声誉并有助于单元测试。
我了解存储库模式是制作 DAL 的一种特殊方式。但它带来了什么?我没有得到。我的困惑只是制作一个 DAL(一个单独的类库/项目),它也会带来这些好处(将数据访问逻辑与业务逻辑分开,保存数据访问代码的声誉,帮助单元测试等)。
可能我仍然缺少存储库模式的好处。请指导我。
数据访问层应该处理数据库等数据源,但要实现MSDN描述的一些更高级别的目标,您需要存储库模式。
根据MSDN
- 您希望最大限度地利用自动化测试的代码量,并隔离数据层以支持单元测试。
- 您从多个位置访问数据源,并希望应用集中管理、一致的访问规则和逻辑。
- 您希望为数据源实施和集中缓存策略。您希望通过将业务逻辑与数据或服务访问逻辑分开来提高代码的可维护性和可读性。
- 您希望使用强类型的业务实体,以便您可以在编译时而不是在运行时识别问题。
- 您希望将行为与相关数据相关联。例如,您想要计算字段或在实体内的数据元素之间实施复杂的关系或业务规则。
- 您想应用域模型来简化复杂的业务逻辑。