API应用程序中从实体类型到DTO的映射

易卜拉欣

我有一个WebAPI应用程序,我必须从实体对象映射到DTO,以适应API响应的外观。对于实体类型和DTO之间的这种映射,我使用AutoMapper如下所示:

Mapper.CreateMap<CustomerEntity, CustomerDTO>()
.ForMember(dest => dest.Age, opts => opts.Ignore())
.ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.CustomerName));

然后,从其中一项操作的一行开始,我将返回带有适当属性名称的必需JSON格式:

public CustomerDTO GetCustomer(int Id)
{
   return Mapper.Map<CustomerEntity, CustomerDTO>(db.Customer.Find(id));
}

但是由于这个原因,我必须创建许多类型(DTO),而我宁愿只给我一个anonymousdynamic结果,因为无论如何它将以JSON的形式返回,并且我不会在其他任何类型中使用这些类型。

我也可以像下面这样进行投影:

public CustomerDTO GetCustomer(int Id)
{
   var customer = db.Customer.Find(id));
   return new CustomerDTO{ Name = customer.CustomerName, OtherProperty = "others" };
}

但是随后,我将不得不手动重复代码,而且我还将错过上面的AutoMapper的映射配置功能。

本质上,真正有用的是以下内容:

Mapper.CreateMap<CustomerEntity, dynamic>()
.ForMember("Age", opts => opts.Ignore())
.ForMember("Name", opts => opts.MapFrom(src => src.CustomerName));

但这是不可能的。这更多是一个概念性问题,而不是一个具体的问题,因此请帮助我理解如何防止在API应用程序中创建DTO来满足响应结构(JSON)与实体对象之间的差异(假设甚至可以选择)。也欢迎任何其他建议。

纪尧姆CR

您可以使用NewtonSoft的Json序列化器,并使用[JsonIgnore]标记您不想映射的Entity类的属性。不再需要动态或其他方式的DTO。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

API应用程序中从实体类型到DTO的映射

来自分类Dev

从实体到EF Core中的DTO映射后,Distinct如何在IQueryable上工作?

来自分类Dev

在GAE上部署应用程序后,为什么在数据存储区中没有创建名称为_BlobInfo_的实体类型?

来自分类Dev

尝试构建数据库查找应用程序,但是我得到“实体类型...需要定义主键”,尽管它是在数据库中定义的

来自分类Dev

使用AutoMapper从实体映射到DTO或从DTO映射到实体时出错

来自分类Dev

具有TPH继承的实体类型到多个表的EF映射属性

来自分类Dev

具有TPH继承的实体类型到多个表的EF映射属性

来自分类Dev

如何在MVC 5 / Web API 2.0应用程序中为Unity依赖项注入和实体框架配置自动映射器?

来自分类Dev

实体类型配置映射问题(针对不同的列名)

来自分类Dev

F#实体类型提供程序类型范围

来自分类Dev

传递到 SpringBoot 应用程序中持久化的分离实体

来自分类Dev

将对象从angular 2应用程序发布到Web Api应用程序(获取不受支持的媒体类型)

来自分类Dev

每个原子实体中的实体类型属性

来自分类Dev

如果实体具有Enum变量,如何从实体到DTO?

来自分类Dev

如何在Apple iTunes Search API中组合实体类型搜索

来自分类Dev

如何在Olingo OData V4 Java API中创建枚举实体类型

来自分类Dev

如何在Olingo OData V4 Java API中创建枚举实体类型

来自分类Dev

DTO在多层应用程序中的正确位置

来自分类Dev

是否可以将所有请求映射到特定路径下的路由,即“/api/**”到 pcf 中的不同应用程序?

来自分类Dev

休眠,复杂关系中的实体类映射

来自分类Dev

使用外部API(Salesforce)将变量设置为Rails应用程序中的字段映射组

来自分类Dev

为什么在JPA中未映射随实体引发的QuerySyntaxException [未从实体]映射?

来自分类Dev

从实体框架中的复杂类型中检索值

来自分类Dev

在 Spring Boot 应用程序的 REST API 中处理类型为 RequestParam 的 Integer 类型的错误值

来自分类Dev

操作 API 应用程序的控制器映射

来自分类Dev

不允许在查询中构造实体类型

来自分类Dev

Ef Core 3实体类型XOrder不能映射到表,因为它是从Order派生的。只能将基本实体类型映射到表

来自分类Dev

Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

来自分类Dev

宁静的设计实体类型。

Related 相关文章

  1. 1

    API应用程序中从实体类型到DTO的映射

  2. 2

    从实体到EF Core中的DTO映射后,Distinct如何在IQueryable上工作?

  3. 3

    在GAE上部署应用程序后,为什么在数据存储区中没有创建名称为_BlobInfo_的实体类型?

  4. 4

    尝试构建数据库查找应用程序,但是我得到“实体类型...需要定义主键”,尽管它是在数据库中定义的

  5. 5

    使用AutoMapper从实体映射到DTO或从DTO映射到实体时出错

  6. 6

    具有TPH继承的实体类型到多个表的EF映射属性

  7. 7

    具有TPH继承的实体类型到多个表的EF映射属性

  8. 8

    如何在MVC 5 / Web API 2.0应用程序中为Unity依赖项注入和实体框架配置自动映射器?

  9. 9

    实体类型配置映射问题(针对不同的列名)

  10. 10

    F#实体类型提供程序类型范围

  11. 11

    传递到 SpringBoot 应用程序中持久化的分离实体

  12. 12

    将对象从angular 2应用程序发布到Web Api应用程序(获取不受支持的媒体类型)

  13. 13

    每个原子实体中的实体类型属性

  14. 14

    如果实体具有Enum变量,如何从实体到DTO?

  15. 15

    如何在Apple iTunes Search API中组合实体类型搜索

  16. 16

    如何在Olingo OData V4 Java API中创建枚举实体类型

  17. 17

    如何在Olingo OData V4 Java API中创建枚举实体类型

  18. 18

    DTO在多层应用程序中的正确位置

  19. 19

    是否可以将所有请求映射到特定路径下的路由,即“/api/**”到 pcf 中的不同应用程序?

  20. 20

    休眠,复杂关系中的实体类映射

  21. 21

    使用外部API(Salesforce)将变量设置为Rails应用程序中的字段映射组

  22. 22

    为什么在JPA中未映射随实体引发的QuerySyntaxException [未从实体]映射?

  23. 23

    从实体框架中的复杂类型中检索值

  24. 24

    在 Spring Boot 应用程序的 REST API 中处理类型为 RequestParam 的 Integer 类型的错误值

  25. 25

    操作 API 应用程序的控制器映射

  26. 26

    不允许在查询中构造实体类型

  27. 27

    Ef Core 3实体类型XOrder不能映射到表,因为它是从Order派生的。只能将基本实体类型映射到表

  28. 28

    Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

  29. 29

    宁静的设计实体类型。

热门标签

归档