存储库模式逐步解释[关闭]

2023-11-27

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

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


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

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

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

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

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

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

  • 使用假实现替换存储库以进行测试很容易 - 因此您不需要有可用于单元测试的数据库

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

存储库模式逐步解释[关闭] 的相关文章

  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 在开关中使用“goto”?

    我看到了一个建议的编码标准 内容如下Never use goto unless in a switch statement fall through 我不跟 这个 例外 案例到底是什么样的 这证明了goto 此构造在 C 中是非法的 swi
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 如何在 Asp.NET MVC 中使用 RedirectToAction() 传递多个对象?

    我想使用redirectToAction 方法传递多个对象 下面是我重定向到的操作结果 public ActionResult GetEmployees Models Department department Models Categor
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • [GoF]-ConcreteSubject 可以覆盖通知方法吗?

    我正在模拟一种情况 其中存在 通知框 观察者 list1 list2 list3 这个科目 现在我会制作一张图表 其中使用观察者模式描述每个列表实现不同类型的notify 这一事实 例如 列表状态的某些变化只需要按照某些标准通知给某些观察者

随机推荐

  • 从网络摄像头获取最新帧

    我正在使用 OpenCV2 通过网络摄像头拍摄一些延时照片 我想提取网络摄像头看到的最新视图 我尝试像这样完成这个任务 import cv2 a cv2 VideoCapture 1 ret frame a read The followi
  • 安全地散列密码 - 这么多相互矛盾的建议!

    我读到了很多关于如何安全存储密码的相互矛盾的建议 我唯一确定的是不要使用MD5 我见过有人提倡使用 PHPbcrypt函数 这似乎会占用服务器的处理器 我见过提倡盐的人 也见过提倡不使用盐的人 一切都是那么的不明朗 关于如何安全存储密码是否
  • 电影播放器​​的激活状态错误 (1)

    你好 我正在从视频网址捕获视频的缩略图 我正在使用以下代码来捕获缩略图 MPMoviePlayerController moviePlayer MPMoviePlayerController alloc initWithContentURL
  • 如何在android中播放来自url的音频文件

    我需要在我的应用程序中播放远程服务器的音频文件 当我使用本地主机服务器 使用 WAMP 进行测试时 我可以玩 当从服务器提供相同的文件时 它不起作用 文件没有扩展名 内容是MP3 String fileUrl http 192 168 1
  • MonoTouch:如何保护我的应用程序

    我使用 Dotfuscator 来保护我的应用程序免受逆向工程的影响 我在 Windows 应用程序中加密了 dll 文件 但如何在 OSX MonoTouch 中做到这一点 从ipa中提取dll 然后在windows中混淆dll 将加密的
  • 使用 Babel Standalone 渲染单个 React 组件,仅包含 index.html 和 Component

    这里是 React 菜鸟 我正在玩 React 我有一个简单的组件可以在我的 component js 中渲染 它包含在我的index html 文件中 我包含了以下脚本React ReactDOM and babel in the hea
  • 取消选中 RadioButton 的 - 替代方法

    有没有可能通过单击选中的单选按钮来取消选中单选按钮 RadioGroup radioGroup RadioButton radioButton1 RadioButton radioButton2 RadioButton radioButto
  • 有人使用 DNOA 实施 2 Legged OAuth 吗?

    我正在尝试在 CSharp 中创建一个身份验证模块 其中我需要使用 DotNetOpenAuth DNOA 库来验证来自请求的签名 该库仅具有消费者密钥和秘密 如果您有任何使用 DNOA 实现 2 Legged OAuth 的示例 那将会很
  • C++ 包含防护

    所以我知道如何使用标准在我自己的头文件中放置包含保护 ifndef define 现在 我的问题是关于包含不属于我自己的库 将是一个很好的例子 我有一个需要使用字符串的头文件 所以我执行以下操作 foo h ifndef FOO H def
  • FileSystemWatcher 在文件保存之前触发 - 如何“暂停”该过程?

    这是我正在尝试的逻辑代码 服务监视目录中的 pptx 文件 如果文件已更改 请转换为 jpg 然后做其他任务 稍后会添加 我正在使用文件水对象 但一旦打开文件就会触发该对象 因此我想通过检查文件是否 锁定 来停止该过程 我认为 锁定时 循环
  • 从 XSL 中的 CDATA 标记内呈现 HTML 标记

    我的 XML 代码中有一个 CDATA 标记 其中包含一些超链接
  • 如何在不使用 if 或 for 的情况下判断一个数是正数、负数还是零? [复制]

    这个问题在这里已经有答案了 我想在微处理器中实现符号和零标志设置 所以我需要编写一个函数来查找数字是正数 负数还是零 而不使用if or for循环以及只允许布尔和位运算符 我做了以下事情 但我如何实现它zero健康 状况 int stat
  • 在同一调用中从 Spark Dataframes split 方法中选择数组元素?

    我正在拆分一个 HTTP 请求来查看元素 我想知道是否有一种方法可以指定我想要在同一调用中查看的元素 而无需执行其他操作 例如 from pyspark sql import functions as fn df select fn spl
  • 旋转相机时重复的纹理严重扭曲/晃动

    我最初问这个问题gamedev 但没有一个答案有助于解决问题 而且我仍然不知道真正的原因是什么 我在常见问题解答中没有看到任何关于在 SE 上重新发布问题的内容 所以我只能希望这没问题 此外 回想起来 这个问题可能更多地与图形编程有关 而不
  • 适用于 Android 的 Firebase 电话身份验证,我们可以只验证电话号码而不创建用户帐户吗

    我正在开发一个 Android 应用程序 我只想验证手机号码而不创建用户帐户 是否可以 我正在使用以下代码 private void startPhoneNumberVerification String phoneNumber Phone
  • 如何将新行/回车符插入到 element.textContent 中?

    假设我想动态创建一个新的 DOM 元素并填充其 textContent innerText 带有 JS 字符串文字 该字符串太长 我想将其分成三块 var h1 document createElement h1 h1 textConten
  • 使用 XmlWriter 附加到 XML 文件

    我在用着XmlDocument and XmlWriter将 XML 附加到现有文件中 但我下面的尝试抛出了一个我不理解的异常 该文档已有一个 DocumentElement 节点 Append to xml file XmlDocumen
  • 从 WebBrowser 控件中删除边框

    我有一个位于表单上的 WebBrowser 控件 该控件周围有一个令人恼火的 2px 内嵌边框 这导致我的内容在右侧和底部被裁剪了 4 px 而且我不知道如何摆脱它 控件本身没有任何 BorderStyle 属性 如何删除边框 请参阅屏幕截
  • 生成 PHP 接口

    有没有从现有类生成 php 接口的工具 如果有像 Netbeans 这样的自动 getter setter 创建工具 但对于接口来说 那就太好了 对于编程用途有InterfaceDistiller它允许您从现有类派生接口 如下所示 dist
  • 存储库模式逐步解释[关闭]

    Closed 这个问题是无关 目前不接受答案 有人可以向我解释 NET 中的存储库模式吗 逐步给出一个非常简单的示例或演示 我知道这是一个很常见的问题 但到目前为止我还没有找到满意的答案 作为总结 我将描述存储库模式的更广泛影响 它允许您的