码迷,mamicode.com
首页 > 移动开发 > 详细

.net core使用AutoMapper

时间:2019-07-25 23:49:52      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:play   column   日期   core   rate   rip   blank   img   datetime   

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类型

技术图片

 

 使用:字符串转时间

技术图片

 

 时间转字符串

技术图片

 

 还有别的就自己看文档吧

 

.net core使用AutoMapper

标签:play   column   日期   core   rate   rip   blank   img   datetime   

原文地址:https://www.cnblogs.com/Sea1ee/p/11247334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!