DAL与存储库模式和没有存储库模式的DAL的区别?

时间:2012-07-14 04:47:28

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

根据MSDN

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