存储库模式逐步解释

时间:2012-08-16 11:00:30

标签: c# asp.net design-patterns repository

有人可以向我解释.NET中的存储库模式,一步一步给出一个非常简单的示例或演示。

我知道这是一个非常常见的问题,但到目前为止我还没有找到满意的答案。

2 个答案:

答案 0 :(得分:188)

作为总结,我将描述存储库模式的更广泛影响。它允许您的所有代码使用对象,而无需知道对象是如何持久化的。所有持久性知识,包括从表到对象的映射,都安全地包含在存储库中。

通常,您会发现代码库中散布着SQL查询,当您向表中添加列时,您必须搜索代码文件以尝试查找表的用法。这种变化的影响是深远的。

使用存储库模式,您只需要更改一个对象和一个存储库。影响非常小。

也许考虑一下为什么要使用存储库模式会有所帮助。以下是一些原因:

  • 您可以在一个地方更改数据访问权

  • 您有一个地方负责一组表格(通常)

  • 使用虚假实施替换存储库很容易进行测试 - 因此您不需要为单元测试提供数据库

还有其他好处,例如,如果您使用MySQL并希望切换到SQL Server - 但我在实践中从未真正看到过这种情况!

答案 1 :(得分:176)

这是一个很好的例子:The Repository Pattern Example in C#

基本上,存储库隐藏了从/向数据库提取/保留数据的详细信息。在封面下:

  • 用于读取,它创建满足提供条件的查询并返回结果集
  • 用于编写,它发出使基础持久性引擎(例如SQL数据库)保存数据所需的命令