OOM  AutoMapper的简单实用

一.前言:

OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMapper也是个老生常谈了,其意义在于帮助你无需手动的转换简单而又麻烦的实体间关系,比如ViewModel和entity的转换,SearchModel和Entity的转换

  先来思考一个问题:一个项目分多层架构,如显示层、业务逻辑层、服务层、数据访问层。层与层访问需要数据载体,也就是类。如果多层通用一个类,一则会暴露出每层的字段,二者会使类字段很多,而且会出现很多冗余字段,这种方式是不可取的;如果每层都使用不同的类,则层与层调用时,一个字段一个字段的赋值又会很麻烦。针对第二种情况,可以使用AutoMapper来帮助我们实现类字段的赋值及转换。

AutoMapper是一个对象映射器,它可以将一个一种类型的对象转换为另一种类型的对象。AutoMapper提供了映射规则及操作方法,使我们不用过多配置就可以映射两个类。

二.demo:

先来两个类:一个是业务层的类,一个是数据访问层的类:

1.业务层的类:UserViewModel.cs

    public class UserViewModel
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public string UserId { get; set; }

        /// <summary>
        /// 账号
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }

    }

2.数据访问层的类:UserEntity.cs

    public class UserEntity
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        [Key]
        public string UserId { get; set; }
      
        /// <summary>
        /// 账号
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }
      
    }

 

使用AutoMapper.dll  v1.0版本

1.静态映射:

静态映射配置:

 public class BootAutoMapper
    {
        public static void Register()
        {
            Mapper.Initialize(x =>
            {
                x.AddProfile<AutoMapperConfigProfile>();
            });
        }
    }

    public class AutoMapperConfigProfile : Profile
    {
        protected override void Configure()
        {
            CreateMap<UserEntity, UserViewModel>();
            CreateMap<UserViewModel, UserEntity>();

        }
    }
View Code

相关文章:

  • 2021-12-09
  • 2021-05-19
  • 2022-12-23
  • 2021-08-17
  • 2021-08-09
  • 2022-12-23
  • 2022-12-23
  • 2022-01-14
猜你喜欢
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案