zoukankan      html  css  js  c++  java
  • .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类型

     使用:字符串转时间

     时间转字符串

     还有别的就自己看文档吧

  • 相关阅读:
    京东采集器100元、求安慰(京东产品、评价(好评、中评、差评)、价格(参考价、京东价)、图片(大图、小图)、图片识别、广告语)
    Oracle数据库创建表ID字段的自动递增
    iv
    oracle 无监听,无法用ip连接问题(ORA12541: TNS无监听程序错误 )
    sql exp
    dockManager1、dockpanl使用笔记
    windows常用控件
    ComboBoxEdit数据绑定
    winform窗体传值
    分组匹配的一个示例
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/11247334.html
Copyright © 2011-2022 走看看