费耶 储存库模式C#

库奇奇斯克

新成员
已加入
2020年5月17日
留言内容
1
编程经验
3-5
什么是存储库模式C#?
C#中的存储库在域和数据映射层(例如 实体框架)。 它允许您从数据集中提取一条记录或多条记录,然后使这些记录像内存中的域对象集合一样工作,也可以更新或删除这些数据集中的记录,并且存储库封装的映射代码将在后台执行适当的操作。
储存库模式C#是一种通过封装持久存储在数据存储中的对象集以及对其执行的操作来实现数据访问的方法, 提供持久性层的更面向对象的视图。
储存库模式C#还支持实现以下目标: 域和数据映射层之间的清晰分离和单向依赖.
存储库模式C#主要用于需要在进入下一阶段之前修改数据的地方。
这是一个 很棒的图 说明了这个想法:
没有为此图片提供替代文字


为什么使用存储库模式C#?
  • 增加可测试性:存储库系统非常适合测试。原因之一是可以使用依赖注入。基本上, 您为存储库创建一个接口,然后在制作对象时为其引用接口。 然后您可以稍后制作一个假物体(使用 起订量 例如)实现该接口。使用类似 结构图 然后可以将适当的类型绑定到该接口。繁荣,您刚刚摆脱了等式的依赖,并用可测试的东西代替了它。
  • 轻松更换各种数据存储而无需更改API:例如,在一种情况下,您可能需要从 数据库,在其他情况下,您可能需要从 第三方API,或者可能需要从其他地方检索数据。无论如何,存储库模式背后的想法是 不管背后是什么都没关系 只要它提供的API适用于调用它的应用程序层即可。
有关如何使用EF创建存储库的更多信息,请阅读我的博客文章 储存库模式C#.
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,921
地点
英国
编程经验
10+
移至感兴趣的文章。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,497
地点
弗吉尼亚州切萨皮克
编程经验
10+
我倾向于归类为认为存储库模式是反模式的人,但这主要是因为大多数人错误地实现了它。

在您决定站在Repository模式的位置之前,这是一本很好的书:
 
最佳 底部