谁能给我解释一下。net中的存储库模式,一步一步地给出一个非常简单的例子或演示。

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


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

基本上,存储库隐藏了如何从数据库获取/持久化数据的细节。在被窝里:

为了读取,它创建满足提供的条件的查询并返回结果集 对于写入,它会发出必要的命令,让底层持久化引擎(例如SQL数据库)保存数据


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

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

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

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

您只有一个地方可以更改数据访问 您有一个单独的位置负责一组表(通常) 用伪实现替换存储库进行测试是很容易的——因此您不需要为单元测试提供可用的数据库

还有其他好处,例如,如果你正在使用MySQL,想切换到SQL Server -但我从来没有在实践中看到过这种情况!