为了保存对我的数据库的更改,我使用Automapper将destination
类型的字符串属性映射到source
中的int类型的属性。
我尝试了ForMember
,但它只适用于源到目的地。
那么如何将类IpPort
中类型为string的B
属性映射到类IpPort
中类型为int的属性A
。
A类和B类映射如下:
cf.CreateMap<classA, classB>().ReverseMap();
答案 0 :(得分:0)
正如AutoMapper主网站所说,您可以使用ForPath
来自定义反向地图。
所以你可以使用下面的ForPath
谎言:
CreateMap<ClassA, ClassB>()
.ForMember(d => dest.IpPort , opt => opt.MapFrom(src => int.Parse(src.IpPort )));
.ReverseMap()
.ForPath(s => s.IntPort, opt => opt.MapFrom(src => src.IntPort.ToString()));
或者您可以使用AferMap
并检查源和目标类型的类型,如
AutoMapper.CreateMap<ClassA, ClassB>().ReverseMap().AfterMap((source, destination) =>
{
object ob = (object)source;
string type= ob.GetType().ToString();
if(type == "ClassA")
//Do something
else
//Do something
})