首页 > 编程语言 >ASP .Net Core: AutoMapper与DTO的使用(自定类型转换)

ASP .Net Core: AutoMapper与DTO的使用(自定类型转换)

时间:2023-10-10 11:34:18浏览次数:30  
标签:类型转换 Core ASP DTO get iMapper set AutoMapper public

建立DTO物件

创建名为Dtos文件夹, 并添加TodoListSelectDto文件

public class TodoListSelectDto
{
    public Guid TodoId { get; set; }

    public string Name { get; set; } = null!;

    public DateTime InsertTime { get; set; }

    public DateTime UpdateTime { get; set; }

    public bool Enable { get; set; }

    public int Orders { get; set; }

    public string InsertEmployeeName { get; set; }

    public string UpdateEmployeeName { get; set; }
}

原生的类型转换

image

其实就是新建一个DTO,并将对应的字段进行赋值。但这样的方式有些繁琐,接下来介绍第二种方案,使用AtuoMapper

AutoMapper

安装AutoMapper

image

在program.cs文件中添加配置

builder.Services.AddAutoMapper(typeof(Program));

配置规则

新建Profiles文件夹,并创建TodoListProfile文件

using AutoMapper;
using Todo.Dtos;
using Todo.Models;

namespace Todo.Profiles;

public class TodoListProfile:Profile
{
    public TodoListProfile()
    {
        CreateMap<TodoList, TodoListSelectDto>();
    }
}

在controller中使用AutoMapper

image

// autoMapper
private readonly IMapper _iMapper;

public TodoController(IMapper iMapper )
{
    _iMapper = iMapper;
}


[HttpGet("UseAutoMapper")]
public IEnumerable<TodoListSelectDto> UseAutoMapper()
{
    var result = _todoContext.TodoLists.Include(a => a.UpdateEmployee)
        .Include(a => a.InsertEmployee);
    
    return _iMapper.Map<IEnumerable<TodoListSelectDto>>(result.ToList());
}

效果展示

image

标签:类型转换,Core,ASP,DTO,get,iMapper,set,AutoMapper,public
From: https://www.cnblogs.com/leoych/p/17754235.html

相关文章

  • C++11之类型转换(2千字长文详解)
    C++11之类型转换C语言中的类型转换在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。隐式类型转化:编译器在编译阶段自动进行,能转就......
  • .Net Core 统一全局处理字符串为Null问题
    services.AddControllersWithViews().AddNewtonsoftJson(options=>{//设置序列化时间格式options.SerializerSettings.DateFormatString="yyyy-MM-ddHH:mm:ss";options.Serializ......
  • .Net Core 中GUID字符串的几种格式化
    NET下的Guid格式化有如下五种:1.Guid.NewGuid().ToString("N")获取32位不包含“-”号的GUID字符串例如:1c64d58a9e834bfe8d053555d81453d02.Guid.NewGuid().ToString("D")获取32位包含“-”号的GUID字符串,默认格式例如:ae8672ac-a987-43f3-a7c2-ac7b3249ac7b3.Guid.NewGuid().......
  • NetCore Ocelot 之 Cache
    OcelotsupportssomeveryrudimentarycachingatthemomentproviderbytheCacheManagerproject.Thissanamazingprojectthatissolvingalotofcachingproblems.IwouldrecommendusingthispackagetocachewithOcelot.Thefollowingexampleshowsh......
  • .net core 接收xml、text/plain格式参数
    1、接收xmlcontroller中写法如下[HttpPost,ActionName("Sign_off")][Produces("application/xml")]//接收[Consumes("application/xml")]//返回publicasyncTaskSign_off([FromBody]XmlDocumentxmldoc){.....//你的业务逻辑}Startup.cs中的ConfigureSer......
  • ASP .Net Core: 使用EF连接postgresql
    备注关于数据库的创建,可参考下方的链接,去创建测试环境,我已经有现成的数据库,故不再记录创建数据库的过程。实现步骤安装EF工具dotnettoolinstall--globaldotnet-ef安装其他依赖dotnetaddpackageNpgsql.EntityFrameworkCore.PostgreSQLdotnetaddpackageMicrosoft.E......
  • Asp-Net-Core开发笔记:EFCore统一实体和属性命名风格
    前言C#编码规范中,类和属性都是大写驼峰命名风格(PascalCase/UpperCamelCase),而在数据库中我们往往使用小写蛇形命名(snake_case),在默认情况下,EFCore会把原始的类名和属性名直接映射到数据库,这不符合数据库的命名规范。为了符合命名规范,而且也为了看起来更舒服,需要自己做命名转换......
  • 造轮子之asp.net core identity
    在前面我们完成了应用最基础的功能支持以及数据库配置,接下来就是我们的用户角色登录等功能了,在asp.netcore中原生Identity可以让我们快速完成这个功能的开发,在.NET8中,asp.netcoreidentity支持了WebApi的注册登录。这让我们在WebApi中可以更爽快的使用。安装包首先我们需要安......
  • NetCore Ocelot 之 Authorization
    Ocelotsupportsclaimsbasedauthorizationwhichisrunpostauthentication.ThismeansifouhavearouteyouwanttoauthorizeyoucanaddthefollowingtoyouRouteconfiguration."RouteClaimsRequirement":{"client_role":......
  • vasp5.4.4+vaspkit安装
    vasp用gnu编译安装是最方便的,下面这个教程非常完整好用vasp-GNU注意看下方评论,第7步更改第33行处,需要删掉-L。vaspkit从sourceforge下载vaspkit打开官网后,右键download获取直链用wget下载即可。解压后运行./setup.sh最后vim~/.vaspkit更改赝势文件路径即可。赝势路径......