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

2023-11-27

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

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


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

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

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

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

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

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

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

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

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

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

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

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

    我正在使用 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 中的存储库模式吗 逐步给出一个非常简单的示例或演示 我知道这是一个很常见的问题 但到目前为止我还没有找到满意的答案 作为总结 我将描述存储库模式的更广泛影响 它允许您的