这样的事情是允许的吗?
‌
不适合我,它说试图在AfterMap内部使用的映射不存在。
答案 0 :(得分:7)
我注意到你在映射中使用了静态AutoMapper
类,但是你是否也使用了映射之外的静态实例,是否为你的Entity
类配置了映射? / p>
以下内容有效,请注意context.Mapper
调用可确保将同一AutoMapper实例用于调用Map
和后续AfterMap
方法。
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<UserViewModel, User>()
.AfterMap((source, destination, context) =>
{
var entity = context.Mapper.Map<Entity>(source.SomeProperty);
});
cfg.CreateMap<EntityViewModel, Entity>();
});
var mapper = config.CreateMapper();
var viewModel = new UserViewModel
{
Name = "Test User",
SomeProperty = new EntityViewModel
{
Value = "Sub Class"
}
};
var user = mapper.Map<User>(viewModel);