1

我不能让它工作:

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);
4

2 回答 2

1

这是一个错误,已在 AutoMapper 的开发分支上修复。AutoMapper 的预发布版本已经修复,或者稍等一下 2.2.1 版本。

于 2013-02-12T01:17:55.197 回答
0

所以原因是 ef 创建了一个代理。当子类用作目标时会发生异常。看来目标类型必须与用 定义的类型完全相同CreateMap<>,派生类型不起作用。

DynamicMap<>似乎工作,所以我可能会使用它。

于 2012-12-13T00:20:45.030 回答