[英]How to reverse map multiple members of an entity that are mapped explicitely in Automapper C#?
I work on a C# app in which I need to map 2 entities.我在一个 C# 应用程序上工作,我需要在其中映射 2 个实体。 So, I define Create map as below:
所以,我定义创建地图如下:
CreateMap<Source, Destination>()
.ForMember(dest => dest.FirstName, map => map.MapFrom(src => src.Name.First))
.ForMember(dest => dest.LastName, map => map.MapFrom(src => src.Name.Last))
.ForMember(dest => dest.SSN, map => map.MapFrom(src => src.SSN))
.ForMember(dest => dest.HomePhoneNo, map => map.MapFrom(src => src.HomePhoneNumber()))
.ForMember(dest => dest.Address, map => map.MapFrom(src => src.Address))
.ForMember(dest => dest.MaritalStatus, map => map.MapFrom(src => (int)src.MaritalStatus))
Now, I want to do ReverseMap, but when I add .ReverseMap for each member, in the next line member, the src and dest are switched.现在,我想做 ReverseMap,但是当我为每个成员添加 .ReverseMap 时,在下一行成员中,src 和 dest 被切换。 So, is there any way to do ReverseMap for all members in just one place?
那么,有没有办法在一个地方为所有成员做 ReverseMap 呢?
Put only one ReverseMap()
to the end of all custom mappings.仅将一个
ReverseMap()
放在所有自定义映射的末尾。
This works for me:这对我有用:
using AutoMapper;
class Program
{
static void Main(string[] args)
{
var configuration = new MapperConfiguration(cfg =>
{
cfg.CreateMap<X, Y>()
.ForMember(dest => dest.Bar1, map => map.MapFrom(src => src.Foo1))
.ForMember(dest => dest.Bar2, map => map.MapFrom(src => src.Foo2))
.ReverseMap() ;
});
configuration.AssertConfigurationIsValid();
var mapper = configuration.CreateMapper();
var x1 = new X() { Foo1 = "1", Foo2 = "2"};
var mappedY = mapper.Map<Y>(x1);
var againX = mapper.Map<X>(mappedY);
Console.WriteLine($"{againX.Foo1} {againX.Foo2}");
}
}
class X
{
public string Foo1 { get; set; }
public string Foo2 { get; set; }
}
class Y
{
public string Bar1 { get; set; }
public string Bar2 { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.