如何使用 Automapper 将 class 映射到子 class?
How to map a class to a subclass with Automapper?
如果我有 class:
public class MainClass
{
public string StringA {get; set;}
public string StringB {get; set;}
public string StringC {get; set;}
public string Candy {get; set; }
}
现在我想将其映射到另一个 class
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));
});
但是我得到了"Expression 'x => x.Candy.CandyID' must resolve to top-level member and not any child object's properties."
我还是 AutoMapper 的新手,所以任何指导都将不胜感激。
我发现我可以这样做:
c.CreateMap<MainClass, NewClass>()
.ForMember(x => x.Candy,
opts => opts.MapFrom(
src => new CandyObj
{
CandyID = src.Candy,
CandyName = src.Candy
}
));
如果我有 class:
public class MainClass
{
public string StringA {get; set;}
public string StringB {get; set;}
public string StringC {get; set;}
public string Candy {get; set; }
}
现在我想将其映射到另一个 class
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));
});
但是我得到了"Expression 'x => x.Candy.CandyID' must resolve to top-level member and not any child object's properties."
我还是 AutoMapper 的新手,所以任何指导都将不胜感激。
我发现我可以这样做:
c.CreateMap<MainClass, NewClass>()
.ForMember(x => x.Candy,
opts => opts.MapFrom(
src => new CandyObj
{
CandyID = src.Candy,
CandyName = src.Candy
}
));