我无法让这个工作:
Mapper.CreateMap<Source, Destination>();
var context = new MyDbContext();
var source = new Source();
var destination= context.Destinations.First();
Mapper.Map<Source, Target>(source, destination)
抛出:AutoMapper.AutoMapperMappingException
:缺少类型映射配置或不支持的映射。
这有效:
Mapper.CreateMap<Source, Destination>();
var source = new Source();
var destination= new Destination();
Mapper.Map<Source, Target>(source, destination)
实体框架正在为我的Destination
类创建一个动态代理类,这是它不起作用的原因吗?
没有目的地参数,它也可以工作,例如:
var destination = Mapper.Map<Source, Target>(source);
答案 0 :(得分:1)
这是一个错误,并在AutoMapper的develop分支上修复。 AutoMapper的预发布版本有修复,或等待2.2.1版本。
答案 1 :(得分:0)
所以原因是ef创建了一个代理。当子类用作目标时发生异常。目标类型似乎必须与使用CreateMap<>
定义的类型完全相同,派生类型不起作用。
DynamicMap<>
似乎有效,所以我可能会使用它。