可以說我有這些模型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