我正在使用 ASP.NET Core 和 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; }
}
ProviderDTO类(在这种情况下是相关的)
public class ProviderDTO
{
public Guid Id { get; set; }
public string Name { get; set; }
}
AutoMapper配置如下所示:
CreateMap<Example, ExampleDTO>().ForMember(x => x.Provider, opt => opt.Ignore());
CreateMap<ExampleDTO, Example>().ForMember(dest => dest.Provider,
opt => opt.MapFrom(src => src.Provider.Id));
当我从Example映射到ExampleDTO时,我想传递ProviderDTO类型的值。
我试过这样的事情。
_mapper.Map<ExampleDTO>(example, opt => opt.AfterMap((src, dest) => dest.Provider = myProvider));
我明白了
'object' does not contain a defenition for 'Provider' and no extension method
这可以实现吗?如果是的话,我做错了什么?
答案 0 :(得分:2)
使用AutoMapper,您可能需要提供源和目标类型,例如:
_mapper.Map<Example, ExampleDTO>(example, opt => {
opt.AfterMap((src, dest) => dest.Provider = myProvider))
});