Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Automapper-ReverseMap()不执行映射_C#_Automapper - Fatal编程技术网

C# Automapper-ReverseMap()不执行映射

C# Automapper-ReverseMap()不执行映射,c#,automapper,C#,Automapper,我有以下两门课: public class ReferenceEngine { public Guid ReferenceEngineId { get; set; } public string Description { get; set; } public int Horsepower { get; set; } } public class Engine { public Guid Id { get; set; } public string De

我有以下两门课:

public class ReferenceEngine
{
    public Guid ReferenceEngineId { get; set; }
    public string Description { get; set; }
    public int Horsepower { get; set; }
}

public class Engine
{
    public Guid Id { get; set; }
    public string Description { get; set; }
    public int Power { get; set; }
}
我正在使用automapper执行从ReferenceEngine到Engine的映射,反之亦然。请注意,属性
ReferenceEngineId
/
Id
马力
/
功率
没有相同的名称

以下映射配置有效,并成功映射具有不同名称的属性:

public static void ConfigureMapperWorking()
{
    AutoMapper.Mapper.CreateMap<ReferenceEngine, Engine>()
        .ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description)).ReverseMap();

    AutoMapper.Mapper.CreateMap<ReferenceEngine, Engine>()
        .ForMember(dest => dest.Id, opt => opt.MapFrom(src => Guid.Parse(src.ReferenceEngineId.ToString())))
        .ForMember(dest => dest.Power, opt => opt.MapFrom(src => src.Horsepower));

    AutoMapper.Mapper.CreateMap<Engine, ReferenceEngine>()
        .ForMember(dest => dest.ReferenceEngineId, opt => opt.MapFrom(src => Guid.Parse(src.Id.ToString())))
        .ForMember(dest => dest.Horsepower, opt => opt.MapFrom(src => src.Power));
}

我的问题是,当属性名称不同时,我们是否应该手动指定TSource->tdestinition和tdestinition->TSource映射?我认为
反向映射的目的是避免我们手动指定双向映射。

反向映射只创建一个简单的反向映射。例如,它会自动配置

Mapper.CreateMap<Engine, ReferenceEngine>();
Mapper.CreateMap();

Mapper.CreateMap();
要获得更复杂的内容,您必须手动配置它

Mapper.CreateMap<Engine, ReferenceEngine>();
Mapper.CreateMap<ReferenceEngine, Engine>();