可以说我有这些模型Automapper,通过链接关联映射对象?
public class Mouse
{
public string Cheese { get; set; }
}
public class Cat
{
public string Hairball { get; set; }
}
public class Dog
{
public string ChewyToy { get; set; }
}
我一个鼠标映射到猫那么猫到狗:
Mapper.CreateMap<Mouse, Cat>().ForMember(m => m.Hairball, o => o.MapFrom(src => src.Cheese));
Mapper.CreateMap<Cat, Dog>().ForMember(m => m.ChewyToy, o => o.MapFrom(src => src.Hairball));
推而广之,鼠标也应该被映射到一个狗,对? 当我试图在两者之间映射:
var mouse = new Mouse() { Cheese = "Eat me" };
Dog dog = Mapper.Map<Mouse, Dog>(mouse);
我得到一个异常:
试图App_Start.MapConfig +鼠标映射到 App_Start.MapConfig +狗。发生类型为 的异常'AutoMapper.AutoMapperMappingException'。
我该如何做到这一点,没有明确地创建一个鼠标之间的映射狗?这是一个更大问题的简单例子。如果他们支持这种行为,我也愿意切换框架,如Value Injector,Glue等。
编写您自己的Automapper?这种类型的问题比你想象的要困难得多。考虑创建一个图形数据结构来跟踪“传递”映射。 – 2013-03-25 14:22:16
对不起,但我看到'串奶酪',并认为“美味!”忽略这个。 – 2013-03-25 14:28:14
你不能,除了Mapper.CreateMap(...) –
2013-03-25 17:19:15