我正在使用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>
答案 0 :(得分:2)
似乎自动映射器无法确定如何映射Bed。我会尝试以下方法:
config = new MapperConfiguration(cfg => {
cfg.CreateMap<Model1, Model2>();
cfg.CreateMap<Bed, Bed>();
});
虽然看起来有点奇怪......