產生的動態代理我不能得到這個工作:映射到目的地時實際目標類型是由實體框架
Mapper.CreateMap<Source, Destination>();
var context = new MyDbContext();
var source = new Source();
var destination= context.Destinations.First();
Mapper.Map<Source, Target>(source, destination)
拋出:AutoMapper.AutoMapperMappingException
:缺少類型映射配置或不支持的映射。
這工作:
Mapper.CreateMap<Source, Destination>();
var source = new Source();
var destination= new Destination();
Mapper.Map<Source, Target>(source, destination)
實體框架是創建一個動態代理類我Destination
類的原因,它不工作?
沒有目標參數它的工作原理,以及即:
var destination = Mapper.Map<Source, Target>(source);
好吧,所以它不是那麼簡單。我創建了一個單獨的項目來測試它。它在那裏有效。但是我發現ef不爲這個項目創建動態代理。這可能是區別嗎?如何確定何時使用代理而不是? 'Configuration.ProxyCreationEnabled'設置爲true。 – mollwe
確保您的POCO對象的所有屬性都是虛擬的。 – Sascha
這與它沒有任何關係。是的,它需要是虛擬的,以便代理類可以覆蓋屬性和延遲加載導航屬性,但我可以在不使用EF的情況下複製此異常。使用automapper更新現有對象時,目標類型必須與目標對象的類型完全相同,但子類是不夠的。在我的答案下面! – mollwe