如何在领域层使用工作单元

2024-04-06

我正在尝试在“我的服务”类中使用工作单元模式。
我有我的 CompanyService 课程

public class CompanyService: ICompanyService
{
    private readonly ICompanyRepository _companyRepository;

    public CompanyService(ICompanyRepository companyRepository)
    {
        _companyRepository = companyRepository;
    }

    public void CreateCompany(Company company)
    {
        _companyRepository.Add(company);
        //I want to have unit of work commit here!!! 
        //unitofwork.commit(); 
    }

    public void UpdateCompany(Company company)
    { etc...}

如果我的 IUnitOfWork 位于我的数据层而不是域层,我如何在我的 ServiceClass 中注入 UnitOfWork 的实例?我的域层中应该有 IUnitOfWork 吗?我只是觉得这听起来不太对劲...


我的领域层中应该有一个工作单元吗?

如果您的领域层需要它,那么答案肯定是:是的。

域层应该包含它工作所需的一切。您唯一需要记住的是,该层不应引用任何外部库,也不应与任何技术特定实现相关联。

Your IRepository or IUnitOfWork的具体实现将位于基础设施/数据层中的某个位置,您可以在其中引用您想要的任何框架(实体框架,...)

看看这个所以答案 https://stackoverflow.com/questions/16861127/onion-architecture-business-services-interfaces-and-implementation/16959061#16959061我在其中解释了域层中需要放置的内容(这是一个与洋葱架构相关的问题,但并不重要)。
看看这个所以答案 https://stackoverflow.com/questions/15181290/decouple-unit-of-work-from-services-or-repo/15527444#15527444在这里您将找到一种轻松实现 UnitOfWork 和存储库模式的方法。

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

如何在领域层使用工作单元 的相关文章

  • 为什么 dotnet 的 char.IsLower() 是静态方法?

    这似乎违背了每一个设计准则 接受 T 类型的单个参数的静态方法通常应该只是一个成员方法 这太奇怪了我实际上不得不发布一个StackOverflow问题 https stackoverflow com questions 389100 is
  • 为标签生成成员:我有什么理由应该这样做?

    我在这里读过另一篇文章 因此 如果可能的话 您不应该为标签生成成员 我想知道有什么潜力缺点到这会是 我说的好处是性能提高 对吗 还要别的吗 我有一个带有 100 个标签的 winform 应用程序 不产生成员有什么好处 还是只有在 Web
  • Powershell - 在不安装 Excel 的情况下将 CSV 转换为 XLS

    我有一台自动生成报告的服务器 报告采用 CSV 格式 我需要能够直接加密文件 无需第三方压缩 无 WinZIP 或 WinRAR 我认为最好的想法是将 CSV 转换为 XLS 然后通过 Powershell 密码保护 XLS 文件 不幸的是
  • 使用 XML 的 WCF 请求验证

    我有一个WCF使用 Net 4 0框架的SOAP Web服务 我在用contract first方法 即 服务代码是使用 WCSF Blue 工具从手写 WSDL 生成的 我对请求消息有以下要求 如果价格小于 100 则不得有税项 但如果大
  • Inno Setup:验证是否已安装 .NET 4.0

    我有一个需要 NET 4 0 才能运行的组件 我的 Inno Setup 安装程序如何验证它是否已安装 如果没有 则提示用户安装它 The InitializeSetup运行 Inno Setup 可执行文件时调用该函数 为自定义脚本插入此
  • 限制 LDAP 查询中返回的属性

    如何限制通过 System DirectoryServices 在 LDAP 查询中返回的属性 我一直在使用 DirectorySearcher 并将我想要的属性添加到 DirectorySearcher PropertiesToLoad
  • 如何证明 .NET CLR JIT 每次运行只编译每个方法一次?

    There s 一个老问题 https stackoverflow com questions 1255803 does the net clr jit compile every method every time 1255832每次询问
  • MS Teams 应用程序:访问此应用程序时出现问题

    The users on MS Teams desktop reported multiple issues with our MS Teams app They see the following error on MS Teams De
  • 具有子列表属性映射问题的自动映射器

    我有以下型号 Models public class Dish Required public Int64 ID get set Required public string Name get set Required public str
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • 如何使用 PowerShell 中的凭据从本地复制到远程位置?

    我是 PowerShell 的新手 我有用户名和密码来访问远程位置的共享文件夹 I need 复制文件foo txt从当前位置到 Bar foo myCOmpany com logs在为以下内容编写的 PS1 脚本中Powershell v
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • WPF 还是 WinForms 作为内部工具?

    在我的公司 我们开发了许多内部工具 从简单的实用程序到成熟的编辑器 这些工具的首要任务是稳定性 可用性和周转时间 意味着添加新功能的速度 到目前为止 我们一直在使用 WinForms 但有几个新工具正在酝酿中 我正在权衡是否应该继续使用 W
  • 使用 JSON.net 反序列化

    我对 json JSON net 等都很陌生 在这里阅读类似的问题后 我无法让我的代码工作 我的错误到底是什么 我监督了什么 出于测试目的是否可以跳过 链接 和 元 类 或者我是否必须定义每个属性 我得到以下 REST 输出 codes h
  • 为什么微软在 .net 3.5 SP1 之前就废弃了 JavaScriptSerializer,而在 .net 3.5 SP1 之后又重新启用了 JavaScriptSerializer?

    JavaScriptSerializer 在 net 3 5 SP1 之后并没有过时 我应该使用 JavaScriptSerializer 还是之前推荐的 DataContractJsonSerializer 还有为什么它被淘汰了 我很乐意
  • Volatile.Read 和 Volatile.Write 背后的逻辑是什么?

    来自 MSDN Volatile Read 读取字段的值 在需要它的系统上 插入一个 阻止处理器重新排序内存的内存屏障 操作如下 如果在该方法之后出现读或写 代码 处理器无法移动它before这个方法 and Volatile Write
  • DLL 中的 GUID (.Net)

    我在这方面不是很有经验 所以我有几个问题 首先 所有 Net 创建的 DLL 是否都有自己的 GUID 如果没有 我的问题是如何获得一个并将其与 DLL 关联 那么问题是 我如何获得该 dll 的 GUID 即 给定 DLL 路径 c so
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J

随机推荐

  • 使用curl命令将文件保存到特定文件夹

    在 shell 脚本中 我想从某个 URL 下载文件并将其保存到特定文件夹 我应该使用什么特定的 CLI 标志来将文件下载到特定文件夹curl命令 或者我怎样才能得到这个结果 我不认为你可以给出curl的路径 但你可以CD到该位置 下载并C
  • PropertyAccessor.GetProperty( PR_ATTACH_DATA_BIN) Outlook 附件失败

    我需要创建一个 OutLook 加载项 用于捕获带有大附件的电子邮件 并将附件替换为可用于下载附件的 URL I found this https msdn microsoft com en us library office hh2908
  • git pull 忽略图像文件

    我是一个存储库的贡献者 偶尔会发布图像 图片确实不是必需的 但其他贡献者将继续add and push他们到存储库 我想表演pull忽略图像文件后缀的操作 例如 png git 目录占用了太多空间 我真的不需要拉这些图像文件 我怎能不pul
  • Android Eclipse 启动委托调试会话卡在 27%

    Eclipse 似乎停留在 27 启动 MyProject 27 Eclipse 可能会解释更多 我真的没有30分钟的时间看这个 我的意思是 如果有什么东西在它的方式可能喜欢它需要的资源 它在哪里表明在这么长的时间内问题是什么 see 尝试
  • Java Mockito-如何模拟参数数量不确定的方法

    我尝试使用 Mockito 来模拟getDeclaredMethod 爪哇的 但该方法的参数是不确定的 如何模拟这样的方法 public Method getDeclaredMethod String name Class paramete
  • 重音字符的问题

    I have a search box on my site and i need to replace all the Spanish characters that user types in to equivalent English
  • 使用计时器和游戏循环

    我正在构建一个简单的控制台游戏 玩家会移动当按键按下时 并且有移动的敌人自动 每种类型的敌人在 X 毫秒内移动一次 据我了解我应该使用timer 但我真的不知道如何在游戏循环中做到这一点 尚未构建 因为我不知道如何使用计时器 但它应该是wh
  • jQuery ajax 回调类成员? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法让 JQuery ajax 成功函数访问它所包含的对象 https stackoverflow com questions 5378622 is there a way for a jque
  • 使用 GDI+ 创建透明背景的图像?

    我正在尝试创建一个具有透明背景的图像以显示在网页上 我尝试了几种技术 但背景总是黑色的 如何创建一个透明图像 然后在其上绘制一些线条 Call Graphics Clear Color Transparent 好 清晰图像 不要忘记使用具有
  • JTree 在应用程序启动时添加节点

    我想使用文件浏览器创建文本编辑器 因此当我启动应用程序时 我希望我的程序在 JTree 上添加节点 以便它向我显示所有文件和文件夹 例如 我的文档 文件夹中的所有文件和文件夹 并让我能够访问这些文件和文件夹 尤其是文件夹 我试图弄清楚安德鲁
  • 具有 contenteditable 的 onChange 事件[重复]

    这个问题在这里已经有答案了 代码如下 text span blah blah span text onChange 事件不起作用 至少在火狐浏览器中 我不想使用文本区域 输入标签 因为必须可以仅更改文本中的特定单词 并且必须内联显示 而不是
  • 使用 SQL 代理运行 SSIS 包时出现问题 - 失败并显示“DTSER_FAILURE(1)”

    我有一个存储在 MSDB 数据库中的 SSIS 包 当我执行它时它工作正常 它将在 SA 帐户下运行或使用 Windows 安全性 我想安排此作业与 SQL Agent 一起运行 但是当我这样做时 我收到一个奇怪的错误 并且我尝试的任何配置
  • Discord Webhook 消息无法发送

    所以我有一段不久前有人发布的代码 到现在已经完美运行一年了 它采用谷歌表单答案并将其作为网络钩子发布到不和谐频道 现在从昨天开始就不再起作用了 脚本没有任何改变 function onSubmit e var form FormApp ge
  • 为什么我无法导入 folium python 包?

    我已经 pip 安装了 folium 当我在主目录中工作时尝试导入它时 出现此错误 ImportError Traceback most recent call last
  • 使用程序员 dvorak 键盘布局(移位数字)在 xmonad 中切换工作区

    好吧 我实际上并没有使用德沃夏克 但是Neo2 http neo layout org 但由于我使用的是矩阵式键盘 真正符合人体工程学 http www trulyergonomic com 我也改变了数字 因此我的这个结构xmonad h
  • MSVC 直接构造函数调用扩展

    In 这个回应 https stackoverflow com a 23274182 420683 没有手套的 https stackoverflow com users 1902313 tloveless指出可以在 MSVC 中使用thi
  • 停止 Safari 4 窗口中的按键事件冒泡

    在 Safari 4 窗口中 似乎无法阻止某些关键事件在 Javascript 中冒泡到浏览器 This question https stackoverflow com questions 1492080 disable f5 key i
  • MediaCodec 将 WAV 转换为 AMR 的文件无法播放

    我在用MediaCodec转换一个 wav文件至 amr 我使用以下代码进行输入和获取编码缓冲区 我得到了编码文件 但它无法播放 我的输入是正确的 因为我能够在 Audacity 中播放该文件 我在用EncodeDecodeTest jav
  • ruby 中对象引用的类型

    我是 Ruby 新手 目前正在尝试使用 Ruby 书中的一些示例作为指导 class Account attr accessor balance def initialize balance balance balance end end
  • 如何在领域层使用工作单元

    我正在尝试在 我的服务 类中使用工作单元模式 我有我的 CompanyService 课程 public class CompanyService ICompanyService private readonly ICompanyRepos