• .net core使用AutoMapper


    AutoMapper文档:http://docs.automapper.org/en/stable/The-MyGet-build.html

    新的版本抛弃了静态API方法,我们将使用依赖注入来完成。

    ①添加包

     

    ②创建MyAutoMapper.cs文件来创建实体和Dto之间的映射关系

     public class MyAutoMapper : Profile
        {
            public MyAutoMapper()
            {
                //实体和Dto的相互转化
                CreateMap<PFUserDto, PFUser>().ReverseMap();
            }
    }
     /// <summary>
        /// 用户表
        /// </summary>
        [Table("PF_User")]
        public class PFUser
        {
    
            /// <summary>
            /// 主键
            /// </summary>
            [Column("UserGuid")]
            [Display(Name = "用户表主键", Description = "用户表主键")]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public Guid Id { get; set; }
    
            /// <summary>
            /// 用户名
            /// </summary>
            [Display(Description = "用户名", Name = "用户名")]
            [Column("UserName")]
            [StringLength(128)]
            public string  UserName { get; set; }
    
            /// <summary>
            /// 密码
            /// </summary>
            [Display(Description = "密码", Name = "密码")]
            [Column("UserPassWord")]
            [StringLength(256)]
            public string  UserPassWord { get; set; }
    
            /// <summary>
            /// 是否删除
            /// </summary>
            [Display(Description = "是否删除", Name = "是否删除")]
            [Column("IsDeleted")]
            public byte?  IsDeleted { get; set; }
    
            /// <summary>
            /// 创建日期
            /// </summary>
            [Display(Description = "创建日期", Name = "创建日期")]
            [Column("CreateDate")]
            public DateTime?  CreateDate { get; set; }
    
        }
     public class PFUserDto
        {
    
            /// <summary>
            /// 主键
            /// </summary>
            [Column("UserGuid")]
            [Display(Name = "用户表主键", Description = "用户表主键")]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public Guid Id { get; set; }
    
            /// <summary>
            /// 用户名
            /// </summary>
            [Display(Description = "用户名", Name = "用户名")]
            [Column("UserName")]
            [StringLength(128)]
            public string UserName { get; set; }
    
            /// <summary>
            /// 密码
            /// </summary>
            [Display(Description = "密码", Name = "密码")]
            [Column("UserPassWord")]
            [StringLength(256)]
            public string UserPassWord { get; set; }
    
            /// <summary>
            /// 是否删除
            /// </summary>
            [Display(Description = "是否删除", Name = "是否删除")]
            [Column("IsDelte")]
            public byte? IsDeleted { get; set; }
    
            /// <summary>
            /// 创建日期
            /// </summary>
            [Display(Description = "创建日期", Name = "创建日期")]
            [Column("CreateDate")]
            public DateTime? CreateDate { get; set; }
    
    
            public string MyProperty { get; set; }
    
        }
    

     

    ③添加服务

      

     ④使用:实体转Dto,Dto转实体也是一样的

     ProjectTo<>方法:

    值的转化,我们想给前端传的时间是字符串形式的,AutoMapper还允许我们自定义转化器来转化我们的数据类型

    ①创建DateTimeTypeConverter.cs文件

     /// <summary>
        /// DateTime2string
        /// </summary>
        public class DateTimeTypeConverter : ITypeConverter<DateTime, string>
        {
            public string Convert(DateTime source, string destination, ResolutionContext context)
            {
                return source.ToString("yyyy-MM-dd HH:mm:ss");
            }
        }

    添加类型映射关系

    public class MyAutoMapper : Profile
        {
            public MyAutoMapper()
            {
                //  可以给lambda表达式
                //CreateMap<DateTime, string>().ConvertUsing(x => x.ToString("yyyy-MM-dd HH:mm:ss"));
                //实现接口
                CreateMap<DateTime, string>().ConvertUsing<DateTimeTypeConverter>();
                //实体和Dto的相互转化
                CreateMap<PFUserDto, PFUser>().ReverseMap();
            }
    
    
        }

    修改我们的Dto  CreateDate类型

     使用:字符串转时间

     时间转字符串

     还有别的就自己看文档吧

  • 相关阅读:
    centos 下查找软件安装在哪里的命令
    Ubuntu常用命令大全
    linux下vi命令大全
    查看linux系统版本命令
    Linux系统安装时分区的选择(推荐)
    Java subList的使用
    Java中unicode增补字符(辅助平面)相关用法简介
    Java编码方式再学
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 283. Move Zeroes
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/11247334.html
Copyright © 2020-2023  润新知