为了保存对数据库的更改,我正在使用Automapper将字符串类型的属性从destination
映射到source
中int类型的属性。
我已经尝试过ForMember
但它仅适用于源到目标。
那么如何将类 B
中名为 IpPort
类型的字符串属性映射到类 A
中名为 int 类型的IpPort
属性。
类 A 和 B 的映射如下所示:
cf.CreateMap<classA, classB>().ReverseMap();
正如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
})