谁能给我解释一下。net中的存储库模式,一步一步地给出一个非常简单的例子或演示。
我知道这是一个很常见的问题,但到目前为止我还没有找到一个满意的答案。
谁能给我解释一下。net中的存储库模式,一步一步地给出一个非常简单的例子或演示。
我知道这是一个很常见的问题,但到目前为止我还没有找到一个满意的答案。
当前回答
作为总结,我将描述存储库模式的更广泛的影响。它允许您的所有代码使用对象,而不必知道对象是如何持久化的。所有关于持久性的知识,包括从表到对象的映射,都安全地包含在存储库中。
通常,您会发现SQL查询分散在代码库中,当您向表中添加列时,您必须搜索代码文件以尝试找到表的用途。这一变化的影响是深远的。
使用存储库模式,您只需要更改一个对象和一个存储库。影响非常小。
也许思考一下为什么要使用存储库模式会有所帮助。以下是一些原因:
您只有一个地方可以更改数据访问 您有一个单独的位置负责一组表(通常) 用伪实现替换存储库进行测试是很容易的——因此您不需要为单元测试提供可用的数据库
还有其他好处,例如,如果你正在使用MySQL,想切换到SQL Server -但我从来没有在实践中看到过这种情况!
其他回答
这是一个很好的例子:c#中的存储库模式示例
基本上,存储库隐藏了如何从数据库获取/持久化数据的细节。在被窝里:
为了读取,它创建满足提供的条件的查询并返回结果集 对于写入,它会发出必要的命令,让底层持久化引擎(例如SQL数据库)保存数据
作为总结,我将描述存储库模式的更广泛的影响。它允许您的所有代码使用对象,而不必知道对象是如何持久化的。所有关于持久性的知识,包括从表到对象的映射,都安全地包含在存储库中。
通常,您会发现SQL查询分散在代码库中,当您向表中添加列时,您必须搜索代码文件以尝试找到表的用途。这一变化的影响是深远的。
使用存储库模式,您只需要更改一个对象和一个存储库。影响非常小。
也许思考一下为什么要使用存储库模式会有所帮助。以下是一些原因:
您只有一个地方可以更改数据访问 您有一个单独的位置负责一组表(通常) 用伪实现替换存储库进行测试是很容易的——因此您不需要为单元测试提供可用的数据库
还有其他好处,例如,如果你正在使用MySQL,想切换到SQL Server -但我从来没有在实践中看到过这种情况!