C# 映射期间映射前/映射后自动映射回调
我正在使用ASP.NET内核和Automapper 6.1.0 我有两种看起来像这样的C# 映射期间映射前/映射后自动映射回调,c#,.net,automapper,C#,.net,Automapper,我正在使用ASP.NET内核和Automapper 6.1.0 我有两种看起来像这样的 public class ExampleDTO { public Guid Id { get; set; } public ProviderDTO Provider { get; set; } } public class Example { public Guid Id { get; set; } public Guid Provider { get; set; } }
public class ExampleDTO
{
public Guid Id { get; set; }
public ProviderDTO Provider { get; set; }
}
public class Example
{
public Guid Id { get; set; }
public Guid Provider { get; set; }
}
ProviderDTO类(在本例中为i相关)
自动映射配置如下所示:
CreateMap<Example, ExampleDTO>().ForMember(x => x.Provider, opt => opt.Ignore());
CreateMap<ExampleDTO, Example>().ForMember(dest => dest.Provider,
opt => opt.MapFrom(src => src.Provider.Id));
CreateMap().ForMember(x=>x.Provider,opt=>opt.Ignore());
CreateMap().FormMember(dest=>dest.Provider,
opt=>opt.MapFrom(src=>src.Provider.Id));
当我从Example映射到ExampleDTO时,我想将ProviderDTO的值传递给type
我试过这样的东西
\u mapper.Map(例如,opt=>opt.AfterMap((src,dest)=>dest.Provider=myProvider))代码>
我明白了
“对象”不包含对“提供者”的防御,也不包含扩展方法
这是可以实现的吗?如果是,我做错了什么?对于,您可能需要同时提供源和目标类型,例如:
_mapper.Map<Example, ExampleDTO>(example, opt => {
opt.AfterMap((src, dest) => dest.Provider = myProvider))
});
\u mapper.Map(示例,opt=>{
opt.AfterMap((src,dest)=>dest.Provider=myProvider))
});
提供程序是对象(ProviderDTO)还是GUID?show provider class…@Ardit这就是我试图映射的内容,当目标是要映射一个对象,否则映射一个对象GUID@Ardit我已将提供程序添加到类中,它与
_mapper.Map<Example, ExampleDTO>(example, opt => {
opt.AfterMap((src, dest) => dest.Provider = myProvider))
});