【问题标题】:How to map a class to a subclass with Automapper?如何使用 Automapper 将类映射到子类?
【发布时间】:2016-04-01 20:16:32
【问题描述】:

如果我有课:

public class MainClass
{
   public string StringA {get; set;}
   public string StringB {get; set;}
   public string StringC {get; set;}
   public string Candy {get; set; }
}

现在我想把它映射到另一个类

public class NewClass
{
   public string StringA {get; set;}
   public string StringB {get; set;}
   public string StringC {get; set;}
   public CandyObj Candy {get; set; }
}

CandyObj 很简单:

public class CandyObj 
{
   public string CandyID {get; set;}
   public string CandyName {get; set;}
}

如何处理NewClass中CandyObj的映射?

我试着走这条路:

    var config = new MapperConfiguration(c =>
    {
        c.CreateMap<MainClass, NewClass>()
            .ForMember(x => x.Candy.CandyID, m => m.MapFrom(a => a.Candy))
            .ForMember(x => x.Candy.CandyName, m => m.MapFrom(a => a.Candy));
    });

但我得到“表达式 'x => x.Candy.CandyID' 必须解析为顶级成员,而不是任何子对象的属性。”

我还是 AutoMapper 的新手,因此我们将不胜感激。

【问题讨论】:

    标签: c# automapper


    【解决方案1】:

    我发现我可以这样做:

            c.CreateMap<MainClass, NewClass>()
                .ForMember(x => x.Candy,
                           opts => opts.MapFrom(
                               src => new CandyObj
                               {
                                   CandyID = src.Candy,
                                   CandyName = src.Candy
                               }
                           ));  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多