【问题标题】:Difference in DAL with repository pattern and DAL without repository pattern?具有存储库模式的 DAL 和没有存储库模式的 DAL 的区别?
【发布时间】:2012-07-13 22:24:28
【问题描述】:

前段时间我开始使用 EF 作为 DAL,并且从教程和视频中了解到存储库模式和工作单元模式。

关于存储库,我了解到它是对 DAL 的抽象,它将业务逻辑与数据访问代码分开。此外,它避免了数据访问代码的声誉并有助于单元测试。

我了解存储库模式是制作 DAL 的一种特殊方式。但它带来了什么?我没有得到。我的困惑只是制作一个 DAL(一个单独的类库/项目),它也会带来这些好处(将数据访问逻辑与业务逻辑分开,保存数据访问代码的声誉,帮助单元测试等)。

可能我仍然缺少存储库模式的好处。请指导我。

【问题讨论】:

标签: c# entity-framework design-patterns repository-pattern


【解决方案1】:

数据访问层应该处理数据库等数据源,但要实现MSDN 描述的一些更高级别的目标,您需要存储库模式。

根据MSDN

  • 您希望最大程度地增加可测试的代码量 自动化并隔离数据层以支持单元测试。
  • 您从多个位置访问数据源并希望申请 集中管理,一致的访问规则和逻辑。
  • 您希望为数据源实施和集中缓存策略。你 希望通过以下方式提高代码的可维护性和可读性 将业务逻辑与数据或服务访问逻辑分开。
  • 您希望使用强类型的业务实体,以便您可以 在编译时而不是在运行时识别问题。
  • 你想 将行为与相关数据相关联。例如,您想要 计算字段或执行复杂的关系或业务规则 实体内的数据元素之间。
  • 您想申请一个 域模型来简化复杂的业务逻辑。

【讨论】:

  • Asif 在 DAL 的情况下(没有存储库),我将再次拥有一个只有我将进行更改的 DAL 类。我无法真正得到它的好处。
猜你喜欢
  • 2010-09-22
  • 2012-09-02
  • 2015-08-13
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
  • 2016-04-07
相关资源
最近更新 更多