在 WCF 服务中将 DTO <==> 实体转换器放置在哪里?

2023-11-30

我有以下设计:我的设计 我的设计 http://s15.postimg.org/3zha8rzqh/Design_Idea.png

我的课程中将有一个名为“ProductDTO”的课程服务层(左侧服务)。

当调用“更新产品(ProductDTO)”操作合约时 - 它应该调用业务逻辑层.

在数据库中(“数据访问层”)有一个名为“Product”的实体,并且因为我使用 LINQ-To-Entities,所以我还将有一个名为“Product”的类。

我的问题是 - 在哪里将 'ProductDTO' 翻译为 'Product' ?

我应该有一个“Translate_ProductDTO_To_Product”函数吗?服务层? 这似乎是最合乎逻辑的答案,因为这是唯一知道“ProductDTO”是什么的层。

但这意味着服务层还必须知道“产品”是什么,因此必须引用数据访问层组件。

它是否正确 ?

我以为服务层应该只参考业务逻辑层,并且业务逻辑层应该只参考数据访问层,并且服务层应该对 DAL 一无所知。


看来您的困惑可能源于假设Product数据层中的类实际上是Product实体。一般在域驱动程序设计,您的业务实体位于/是业务逻辑层。通常这些类“不知道”持久性,这是数据访问层的责任(通常使用对象关系映射器框架)。

在实践中,您的服务将需要引用域模型(业务层)和数据访问层来执行有用的工作。 WCF 服务代码和数据访问层都应依赖于域模型,但域模型不应依赖于数据访问层或 WCF 服务代码。

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

在 WCF 服务中将 DTO <==> 实体转换器放置在哪里? 的相关文章

  • 如何自定义 WCF 在序列化合约方法参数时采用的流程?

    我想设计一个人为的场景 但它有坚实的实际基础 想象一个集合类型 COuter 它是另一个集合类型 CInner 的实例的包装器 两者都实现了 IList 不用管 T 此外 COuter 实例隐藏在某个对象图内 其根 我们将其称为 R 是从
  • 我希望能够使用 lambda 表达式来指定要通过 wcf 服务返回的值范围

    我不知道这是否可能 但这会很酷 问题是这是否可能 但如果可能的话 举一个例子 我不确定您将使用什么方法签名来将 lambda 表达式传递到其中 例如方法IList
  • 在 WCF 上重用我的 PagedList 对象

    问题 我有一个自定义集合PagedList
  • WCF 服务 - 自定义主体

    在 WCF 服务类的构造函数中 我将当前主体设置为消息头中传递的主体的主体 Thread CurrentPrincipal OperationContext Current IncomingMessageHeaders GetHeader
  • 如何防止在 CXF Web 服务客户端中生成 JAXBElement

    我正在尝试使用 CXF 创建一个 Web 服务客户端来使用 WCF Web 服务 当我使用 wsdl2java 时 它生成具有 JAXBElement 类型而不是 String 的对象 我读到有关使用 jaxb bindings xml 文
  • 如何使用 WSDL 和 XSD 的注释生成 .NET 类

    有一些 XSD 和 WSDL 我想从它们生成 C 代码 我使用了 svcutil exe 但它不会从 XSD 注释生成 XML 注释
  • WCF 是否始终需要我的主机具有管理员权限?

    我正在跟进this http msdn microsoft com en us library ms730935 aspx教程 似乎要在我的应用程序中实现 WCF 它需要以管理员权限运行 我想使用远程处理only同一台机器上的进程之间进行通
  • 从一个客户端使用多个 WCF 服务

    我的网络场有 10 台运行 IIS 的服务器 在每台服务器上我都有相同的网站和相同的 WCF 服务 它公开了一些用于读取 删除缓存 会话 应用程序变量和其他内部数据的功能 在其他一些 Web 服务器上 我有一个 管理 Web 应用程序 它是
  • 使用 ELMAH 记录 WCF 服务的异常

    我们正在使用优秀的ELMAH http code google com p elmah处理 ASP NET 3 5 Web 应用程序中未处理的异常 这对于除使用 REST 功能使用的 WCF 服务之外的所有站点都非常有效 当操作方法中发生应
  • 创建WCF数据服务以在服务主机中使用

    我有一个服务应用程序 它通过不同的绑定托管多个 WCF 端点 我现在想在同一服务主机中托管 WCF 数据服务 这个帖子 https stackoverflow com questions 2926767 wcf data service h
  • WCF 服务主机配置 - 请尝试将 HTTP 端口更改为 8732

    我的 PC 上运行着一个复杂的基于 WCF 服务的解决方案 但由于安装 Windows 8 1 时出现问题 我不得不 刷新 我的 PC 现在我已经重新安装了 Visual Studio 2012 我的项目不再正常运行 当我调试单元测试时 w
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • 将 F# 类型保存到数据库

    A lot http gorodinski com blog 2013 02 17 domain driven design with fsharp and eventstore f 文章数推荐 http fsharpforfunandpr
  • 异步WCF调用来保存线程?

    In 另一个问题 https stackoverflow com q 19731600 279516 建议我发送异步网络请求 而不是在后台线程上发送同步请求 原因是为了不浪费一根线 我试图理解这是怎么回事 这是最初的做法 我可以理解这里怎么
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 如何为WCF服务创建重定向?

    我的网站 A 上托管了一个 WCF 服务 我还有另一个网站 B 它使用 IIS URL 重写将所有请求重定向到我的网站 A 但是 站点 B 不处理任何对 svc 文件的请求 返回 404 not find 知道如何让它发挥作用吗 UPD重定
  • 如何为 WCF IErrorhandler 设置 web.config

    无法使用正确的 web config 将 IErrorHandler 集成到我的项目中 我有一个成功工作的 WCF 正在被 net 4 中的 webclient 使用 但是当尝试将 IErrorhandler 设置为全局错误记录器作为我所有
  • WCF流模式确实很慢

    我想知道为什么流模式下的 WCF 与缓冲模式相比确实很慢 基本上 我从服务器读取大量数据 数据库访问 然后通过 WCF 将大量数据传输到其他客户端 我通过比较两种不同的传输模式进行了一些测试和基准测试 我创建了 2 个端点 第一个正在使用t

随机推荐

  • 如何在PHP编辑页面中选中单选按钮?

    在 php 形式中 我将数据从单选按钮获取到数据库 效果很好 但是在编辑页面中如何从数据库中获取选中的值 td align left valign middle td
  • Linq to Entities - SQL“IN”子句

    在 T SQL 中 您可以有如下查询 SELECT FROM Users WHERE User Rights IN Admin User Limited 您将如何在 LINQ to Entities 查询中复制它 有可能吗 你需要彻底改变你
  • 如何生成某个公历年到回历的日期

    我想自动适应或生成一年中的日子 从公历到回历 我的意思是您想选择或写入年份作为示例 选择2015年 获取公历 2015 年的所有日期 然后将其转换为回历并显示回历列表 所以你想返回 2 个列表 list1 公历天列表 vs 另一个列表2 h
  • 添加 QLPreviewController 作为子视图不会加载 PDF

    我正在尝试添加 QLPreviewController 的视图作为子视图 不 我不能使用导航控制器或模式 它仅显示 QLPreviewController 的结构背景 我创建一个并将其添加为子视图 QLPreviewController p
  • 如何设置自定义控件的描述以显示在工具箱中?

    我想在设计时添加一个文本 告诉设计者我的控件是什么到我的自定义控件中 就像这里的 VS 默认控件一样 我努力了 summary但这对我不起作用 如何做呢 你可以用以下方式装饰你的班级Description属性 然后 当您使用以下命令将控件添
  • 如何根据自动缩小的标签为多个标签设置相同的字体比例?

    我有 4 个标签视图 其中一个应该显示较大的数值并设置为自动收缩 我的要求是在自动调整该标签以适合其内容后 将该标签设置为与其他标签相同的字体缩放或大小 以便文本内容在整个过程中看起来统一 设置最小比例因子对其他标签没有帮助 因为它们的内容
  • 为 SBT 依赖项设置 javac 选项

    我在编译通过 GIT 加载的 Java 依赖项时遇到问题 object ApplicationBuild extends Build lazy val project Project root file dependsOn RootProj
  • 使用 ADODB 连接打开存储在 SharePoint 上作为数据源的 Excel 文件

    我正在尝试使用以下 VBA 代码片段打开 Excel 文件作为数据源 Dim cn As ADODB Connection Set cn New ADODB Connection With cn Provider Microsoft ACE
  • 是否可以通过积分加速度计数据随时间的变化来计算速度?

    我想知道是否可以使用 线性 加速度计和指南针来计算速度而不使用位置服务 我想通过计算北 西 上轴的加速度分量并随着时间的推移对它们进行积分来做到这一点 那行得通吗 一般来说 Android 设备上的加速度计噪音太大 无法整合信号并获取速度
  • 如何使用 OpenGL 保存 OpenGL 绘图?

    我用 OpenGL 命令绘制屏幕 我必须将此屏幕保存为 bmp 或 png 格式 但我做不到 我正在使用 glReadpixels 但我无法继续 如何使用 OpenGL 在 C 中保存此绘图 它来了 你必须包含 WinGDI h 我认为 G
  • 使用 JavaScript 按类替换内容

    如何使用 Javascript 按类选择元素来修改内容 实际上我尝试使用这个 document getElementsByClassName myClass innerHTML new content 但什么也没做 如果我通过 ID 选择元
  • 将 DataGrid 列宽度绑定到另一个 DataGrid 的两列

    问题 我该如何绑定StatName Width to Samp1 ActualWidth Samp2 ActualWidth 子问题 为什么是我的WidthConverter函数从未执行 断点从未命中 什么是正确的
  • 为什么线程优先级没有作用?

    namespace HelloWorld class Program static void Main string args Thread t new Thread gt WriteY 11 t Start t IsBackground
  • 将 scipy.quad 与 iε 技巧一起使用:结果不佳

    为了规避柯西原理值 我尝试将使用小位移 i 的积分积分到复平面中以避开极点 然而 从下图可以看出 结果很糟糕 此结果的代码如下所示 您有如何改进此方法的想法吗 为什么它不起作用 我已经尝试更改 或积分中的极限 编辑 我将方法 cauchy
  • JavaScript中将非纯函数变成纯函数的策略是什么

    我开始学习 JavaScript 函数式编程 这可能是一个愚蠢的问题 但我正在尝试解决以函数方式编写的非纯函数 我的问题是应该使用什么策略来在函数式编程范例中实现这一点 const crypto require crypto const e
  • 如何在调用方法之前使方法被被动调用

    就像这样 一个类有一个名为 sayHello 的方法 当类的实例调用 sayHello 时 在调用 sayHello 之前会自动调用另一个类中的方法 示例代码可以是这样的 public class Robot public static v
  • 在折线图上显示图像而不是圆圈

    我创建了一个LineChart使用 MPAndroidChart 库 一切都很好 现在我想做的是显示一个可绘制的 图像 而不是图表上每个条目的默认圆圈 我已经尝试了 API 中的很多选项 但没有成功 谁能告诉我我该怎么做 最后 在尝试了很多
  • 根据另一个向量中的值填充一个向量中的值

    我有两个具有两个不同维度的数据框 1 head x Year GDP deflator 1 1825 NA 2 1826 NA 3 1827 NA 4 1828 NA 5 1829 NA 6 1829 NA 7 1830 NA 8 1830
  • R通过匹配字符串计算频率

    请问有人可以帮我解答这个问题吗 多谢 我有一些这样的数据 A B fruit red apple fruit green apple fruit yellow apple fruit kiwi fruit golden kiwi juice
  • 在 WCF 服务中将 DTO <==> 实体转换器放置在哪里?

    我有以下设计 我的设计 我的设计 http s15 postimg org 3zha8rzqh Design Idea png 我的课程中将有一个名为 ProductDTO 的课程服务层 左侧服务 当调用 更新产品 ProductDTO 操