zoukankan      html  css  js  c++  java
  • 实体映射-------AutoMapper

    现在有2个实体(A、B),2个实体中的部分字段是相同的,现在把A实体获取的值赋值给B实体,利用AutoMapper实体映射可以轻松解决

    参考

    实体中不同名称之间的映射可以这样写

    Mapper.Initialize(x =>
                x.CreateMap<WorldA, WorldB>()
                 .ForMember(d => d.AGE, opt => {
                 opt.MapFrom(s => s.name);
               })
               );

    注意:字段名称相同的类型一定也要相同不然会报错的

    AutoMapper.3.2.1lib et40

    //第一步初始化
                Mapper.Initialize(cfg =>
                {
                    cfg.CreateMap<WorldA, WorldB>();
                });
    List
    <WorldA> worldAs = new List<WorldA>() { new WorldA() { id = 1, wewe = "测试1",name="98k" }, new WorldA() { id = 2, wewe = "测试2",name="98k" }, new WorldA() { id = 3, wewe = "测试3",name="98k" }, }; //A实体值赋给B实体 List<WorldB> b = Mapper.Map<List<WorldA>, List<WorldB>>(worldAs).ToList();
     public class WorldA
            {
                public int id { get; set; }
                public string wewe { get; set; }
    
                public string name { get; set; }
            }
            public class WorldB
            {
                public int id { get; set; }
                public string wewe { get; set; }
    
                public string AGE { get; set; }

     public string money { get; set; } }

     值为null的处理

     Mapper.Initialize(x => x.AddProfile<UserProfile>());
                List<WorldA> worldAs = new List<WorldA>()
                {
                   new WorldA() { id = 1, wewe = "测试1",name=null },
                   new WorldA() { id = 2, wewe = "测试2",name="98k" },
                   new WorldA() { id = 3, wewe = "测试3",name="98k" },
                };  
                
                //A实体值赋给B实体
                List<WorldB> b = Mapper.Map<List<WorldA>, List<WorldB>>(worldAs).ToList();
    public class UserProfile : Profile { protected override void Configure() { CreateMap<WorldA, WorldB>() .ForMember(d => d.AGE, opt => opt.MapFrom(s => s.name)) .ForMember(d => d.AGE, opt => opt.NullSubstitute("值为空") ); CreateMap<WorldA, WorldB>() .ForMember(d => d.money, opt => opt.MapFrom(s => s.name)) .ForMember(d => d.money, opt => opt.NullSubstitute("值为空") ); } }

     

  • 相关阅读:
    RubyConf的podcast
    一篇很好的英语学习文章:一个孤独而封闭世界――英语口语
    新浪和搜狐的读书频道
    新想法:个性化的RSS
    代码搜索:Koders
    我看到的Web 2.0: 自组织的大众化参与
    土豆网的后舍男孩挺搞笑的
    可以给pdf加批注的软件VeryPDF PDF Editor
    张海迪写的描写英语学习经验的书《美丽的英语》
    Fowler出来推荐Rake了(基于Ruby的build工具)
  • 原文地址:https://www.cnblogs.com/macT/p/11389896.html
Copyright © 2011-2022 走看看