问题标签 [data-transfer-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
491 浏览

jax-rs - 是否可以将 ResourceInfo 注入到 EntityProvider 中,例如 MessageBodyReader 和 MessageBodyWriter?

有一个要求:

对于每个 RESTful 资源方法,都有一组 OXM 元数据文件。我需要在创建 JAXBContext 时加载这些文件。所以我需要知道每个请求的 ResourceInfo,然后从 Resource Method 上的一些 Annotation 映射,它可以指示应该加载哪一组 OXM 元数据文件。

  1. ResourceInfo 是每个请求的吗?
  2. 我可以在EntityProvider中获取每个请求的Method(资源方法),例如MessageBodyReader和MessageBodyWriter吗?
  3. JPA Entity 和 XML/JSON 之间或 TO 和 XML/JSON 之间的 OXM 元数据,您更喜欢哪个?因为我假设每个服务 TO 可以自定义域类的视图到客户端。
0 投票
2 回答
1578 浏览

asp.net-mvc-4 - 将父实体和子实体映射到 DTO 时的循环依赖

我刚刚使用this question中显示的jevelez方法在通用存储库中实现了显式加载子实体及其父实体。

但是现在我正在尝试将子实体及其父实体映射到 DTO,以便我可以将它们发送到我的 UI 层。

这是我的映射器当前的样子:

映射接口:

实现接口的抽象基方法:

以下是两个映射器,它们为两个实体实现这些作为示例:

和子实体映射器:

所以我相信你们都可以看到循环依赖发生在哪里。在过去的两天里,我一直在为此苦恼,但我对此仍然很业余,到目前为止,我还无法使用谷歌解决这个问题。

我不想在这部分使用 AutoMapper 和 ValueInjector 之类的工具,因为我在数据库和 DTO 之间进行映射,并且我已经在使用它在 DTO 和 UI 层中的 ViewModel 之间进行映射。

如果可能的话,我希望能够以这种方式保持两者之间的映射,因为有时我会只请求子实体,在这种情况下,我可能希望将父实体连同它一起获取。

有谁知道如何正确地做到这一点?

0 投票
2 回答
1143 浏览

c# - 我应该用数据传输对象包装实体吗

我有一个名为 SchoolyearEditRequest 的数据传输对象,它有 4 个属性保存域对象。

1)我的 DTO 包装域实体是错误的吗?

2)如果是,我是否必须为每个域实体创建一个 xxxDTO“包装器”,其中只有客户端真正需要的属性?

0 投票
2 回答
413 浏览

asp.net-web-api - 数据传输对象的数据能否匹配 UI 需求

数据传输对象保存从多个业务对象发送到客户端的数据。

但是,这些数据及其结构是否应该/可以为客户端进行额外设置以满足其绑定需求?

或者我应该为此额外创建一个 ViewModel 吗?

它是一个小型应用程序,所以我对过多的过度架构犹豫不决,并且 dto 将与视图模型 90% 相同......

DTO 将不再从一个安静的服务器转移到一个 javascript 客户端。

0 投票
0 回答
88 浏览

ios - 您如何处理为相互依赖的对象编写汇编程序?

我有一个Animal对象,它有一个Owner. 一个Owner对象有一个Animal。如何为 an 编写汇编程序和为 an 编写避免循环Animal的汇编程序?Owner

请让我进一步解释:

我得到一个Animal NSManagedObject核心数据并将其转换为一个Animal数据传输对象(DTO),以便在我的整个应用程序中使用。我Animal为此使用了一个汇编器(又名映射器)。

Animal汇编程序中,我需要填写Owner属性。所以,我需要组装一个OwnerDTO。好吧,在OwnerDTO 内部,我需要组装一个AnimalDTO。因此循环。要创建一个完整的Animal,我需要一个Owner对象。要创建一个Owner对象,我需要一个Animal对象。在Animal对象内部,我应该只存储对 的引用Owner,例如ownerId? 在 Core Data 中,似乎允许对象相互组合。

我很感激任何解决这个问题的策略。

0 投票
1 回答
311 浏览

c# - 根据 ui 逻辑设计数据传输对象

我处于数据传输对象的情况,我开始认为我过度架构或使事情复杂化......

我不知道我是对还是错。

仅当在客户端 UI 中选择 WeekType AB 时,才需要 EditSchoolyearDTO 中的所有属性。

当只选择 WeekType A 时,A 属性就足够了。

在 AB 案例中,我现在将创建一个 SchoolWeekADTO 和 SchoolWeekBDTO。

好吧,当我将 DTO 结构视为客户端和服务器之间的 json 接口时,我的 DTO 结构不会表达何时需要 A 或 AB 数据。这对我来说感觉很糟糕。

最重要的是,我的服务器 api 具有固定类型,因此我不能一次发送带有 A-DTO 的帖子,而另一次发送带有 AB-DTO 的帖子。

你会怎么做?

0 投票
2 回答
8474 浏览

c# - DTO 不应该知道业务对象内部的枚举

我在定义的业务对象中有一个枚举。

这个枚举虽然在数据传输对象中定义。

dto 枚举不是业务对象的类型,因为它们不应该相互了解。

当我现在从客户端获取此 dto 并将 dto 映射到业务对象并将数据插入数据库时​​,我想断言传递的 dto.enum 与数据库中插入的枚举值具有相同的值。

这就是我得到的错误信息:

实际上它们具有相同的值但类型不同:dto.enum 与 businessobject.enum。

那么你会在哪里定义这个枚举,那么两个对象都可以,并且两个对象之间没有耦合?

我考虑在我的业务层和 dto AND 业务对象使用的枚举定义中放置一个额外的 c# 类,以便断言可以工作。

你会怎么做?

0 投票
0 回答
113 浏览

asp.net-web-api - 返回一个 IEnumerable在一个额外的响应包装类中

我的服务应该返回 DTO 的集合,还是应该使用后缀“响应”的类包装我的 dto 集合并返回它?

我对太多不同的样本感到困惑,它的优势是什么。

当我做一个业务逻辑较少但 UI 逻辑较多的单页应用程序时,不会有很多 DTO,也没有太多理由来更改/扩展它。

0 投票
3 回答
521 浏览

asp.net-mvc - 这是否违反了 DRY 原则?

我有 3 个域模型 - Item、ItemProductLine 和 ProductLine。这些中的每一个都映射到现有的数据库表。我还有一个在我的视图中使用的视图模型。

领域模型:

查看型号:

我目前的查询是:

我目前在控制器中有这个查询,但我正在重构代码。我想将查询代码放在数据访问层的存储库类中。根据我的阅读,我不应该引用该层中的任何视图模型。如果我更改select new ItemViewModel()select new Item(),它将返回错误:

无法在 LINQ to Entities 查询中构造实体或复杂类型“proj.DAL.Item”。

我见过的一个解决方案是创建一个数据传输对象 (DTO) 来将数据从我的域模型传输到我的视图模型。

但是,通过这样做,我将拥有 3 个数据副本。如果我需要添加另一个数据库字段并显示它,我需要更新 3 个文件。我相信我违反了 DRY 原则。使用 DTO 和视图模型时是否不可避免地违反了 DRY 原则?如果没有,您能否提供一个示例来说明如何将其重构为具有 DRY 代码?

0 投票
0 回答
418 浏览

sql - 在模式之间移动 Oracle 对象(唯一性约束限制)

实际上在Oracle 10g上。如果这可以帮助我们,我们可以迁移到12c 。

  • 我们有 2 个模式A_ADMINA2
  • 模式A2,其中包含一些指向A_ADMIN表的同义词
  • 我们想将引用的 A_ADMIN 对象移动到A2 模式,因此只需要一个模式
  • 触发器、包、索引、唯一性约束......

考虑到我们有开发和生产环境,因此我们想准备迁移脚本来这样做,最好的方法是什么?