版本库模式逐步说明

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

我知道这是一个很常见的问题,但至今我还没有find满意的答案。

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

通常情况下,您会发现分散在代码库中的SQL查询,当您向表中添加列时,您必须search代码文件以尝试查找表的用法。 这一变化的影响是深远的。

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

也许这将有助于思考为什么你会使用存储库模式。 这是一些原因:

  • 你有一个地方来改变你的数据访问

  • 你有一个地方负责一套表(通常)

  • 用一个假实现来replace一个存储库是很容易的,所以你不需要在你的unit testing中有一个可用的数据库

还有其他一些好处,例如,如果您使用MySQL并想切换到SQL Server,但实际上我从来没有真正看到过这一点!

这是一个很好的例子: C#中的存储库模式示例

基本上,存储库隐藏了数据从数据库中被提取/保存的细节。 在封面:

  • 为了阅读,它创build满足提供的标准的查询并返回结果集
  • 为了编写,它发出必要的命令来使底层持久性引擎(例如SQL数据库)保存数据