怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

AutoMapper的使用

根据上传的文件内容,可以看到AutoMapper被用来映射不同对象之间的属性。具体来说,它用于将一个类的实例转换为另一个类的实例,而这两个类拥有相似的结构或部分相似的属性。以下是基于提供的代码对AutoMapper用法的总结:

  1. 安装和引用

    • TodoList.Api.csproj文件中,我们看到项目引用了AutoMapperAutoMapper.Extensions.Microsoft.DependencyInjection包。
      <PackageReference Include="AutoMapper" Version="12.0.1" />
      <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
  2. 注册服务

    • Startup.cs文件中的ConfigureServices方法里,通过调用services.AddAutoMapper(typeof(Startup));来注册AutoMapper服务。这会扫描当前程序集(即包含Startup类的程序集)并自动配置所有Profile类。
      services.AddAutoMapper(typeof(Startup));

    For .NET 6, we have to modify the Program class:

    builder.Services.AddAutoMapper(typeof(Program));
  3. 创建映射配置

    • TodoListMappingProfile.cs文件定义了一个继承自Profile的类,该类包含了具体的映射规则。在这个例子中,它建立了TodoItemTodoListDto之间双向的映射关系。
      public class TodoListMappingProfile : Profile
      {
      public TodoListMappingProfile()
      {
      CreateMap<TodoItem, TodoListDto>().ReverseMap();
      }
      }
  4. 使用映射

    • TodoItemsController.cs和其他控制器中,依赖注入了IMapper接口,并在需要的地方使用它来进行对象间的转换。例如,在GetTodoItem方法中,从数据库获取到的TodoItem实体被映射到了DTO(数据传输对象)TodoListDto

      return Ok(_mapper.Map<TodoListDto>(item));
    • 类似地,在PostTodoItem方法中,传入的DTO被映射回实体对象以进行保存或更新操作。

      await _service.CreateTodoItem(_mapper.Map<TodoItem>(todoItem));
posted on   超级无敌美少男战士  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2022-12-26 ECharts 的 series 配置项主要有以下几种
点击右上角即可分享
微信分享提示