如何使用Automapper将类映射到子类? [英] How to map a class to a subclass with Automapper?
本文介绍了如何使用Automapper将类映射到子类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我有课:
public class MainClass
{
public string StringA {get; set;}
public string StringB {get; set;}
public string StringC {get; set;}
public string Candy {get; set; }
}
现在我想将其映射到另一个类
Now I want to map that to another 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就是:
and CandyObj is simply:
public class CandyObj
{
public string CandyID {get; set;}
public string CandyName {get; set;}
}
如何处理NewClass中CandyObj的映射?
How can I handle the mapping of the CandyObj in the NewClass?
我尝试过这条路线:
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'必须解析为顶级成员,而不是任何子对象的属性."
But I get "Expression 'x => x.Candy.CandyID' must resolve to top-level member and not any child object's properties."
我对AutoMapper还是很陌生,因此任何指导都将不胜感激.
I'm still new to AutoMapper so any guidance would be appreciated.
推荐答案
我发现我可以做到这一点:
I found out I can accomplish by doing this:
c.CreateMap<MainClass, NewClass>()
.ForMember(x => x.Candy,
opts => opts.MapFrom(
src => new CandyObj
{
CandyID = src.Candy,
CandyName = src.Candy
}
));
这篇关于如何使用Automapper将类映射到子类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文