Automapper中缺少类型映射配置或不支持的映射错误

时间:2017-06-08 17:01:01

标签: c# asp.net-mvc automapper

我正在使用Automapper将一个模型映射到第二个模型,该模型的某些行与第一个模型的名称相同。我得到了这个内部异常

  

缺少类型地图配置或不支持的映射      映射类型:      床 - >床      Model1.Bed - > Model2.Bed

这是代码的精简版本。

模型1

public class Model1
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<Bed> Beds { get; set; }
    public IEnumerable<Bed> Beds1 { get; set; }
    public string Status {get; set;}
    public string Notes {get; set;} 
}
public class Model2
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<Bed> Beds { get; set; }
    public IEnumerable<Bed> Beds1 { get; set; }
}


public class Bed
{
    public Guid Id { get; set; }
    public Guid TypeId { get; set; }
    public string Type { get; set; }        
    public string Notes { get; set; }
    public DateTime? CreatedOn { get; set; }
    public DateTime? LastUpdatedOn { get; set; }
}

映射:

 MapperConfiguration config = null;
 config = new MapperConfiguration(cfg => { cfg.CreateMap<Model1, Model2>(); });           
 IMapper mapper = config.CreateMapper();
 var dest = mapper.Map<Model1, Model2>(update);

update是Model1的一个实例。我错过了什么吗?我是否应该对Bed类映射做一些事情,即使两者都引用相同的方法? 除了手动执行或使用Automapper之外,还有一种方法可以将数据从一个模型复制到另一个模型吗?

编辑1: 我确定错误来自该映射。我删除它,所有其他字段都很好,没有例外。但我不确定我该怎么做床 - &gt;床绑定。

编辑2:This link似乎有同样的问题,他们说这是一个可能的错误,This one似乎有答案,虽然我不知道我怎么能适应我的情况。< / p>

1 个答案:

答案 0 :(得分:2)

似乎自动映射器无法确定如何映射Bed。我会尝试以下方法:

config = new MapperConfiguration(cfg => { 

     cfg.CreateMap<Model1, Model2>(); 
     cfg.CreateMap<Bed, Bed>();

});

虽然看起来有点奇怪......