2015-10-26 148 views
0

我有以下類別:Automapper繼承映射工廠

public class A{} 
public class AA : A {public int aa{get;set;}} 
public class AAA : A {public int aaa{get;set;}} 
public class B{} 
public class BB : B {public int bb{get;set;}} 
public class BBB : B {public int bbb{get;set;}} 

,這是我的映射:

Mapper.CreateMap<A,B>().include<AA,BB>().include<AAA,BBB>(); 
Mapper.CreateMap<AA,BB>(); 
Mapper.CreateMap<AAA,BBB>(); 

我是在假設automapper會明白hiearchy並繪製相應的派生類。但我無法用下面的代碼得到它。映射的實體總是基類,在這種情況下 - B. 請注意我有一個存儲庫工廠,它將確定返回類型GetAll()

var list = myRepo.GetAll() //this returns IEnumerabe<AA> or IEnumerable<AAA> 
var newlist = Mapper.Map<IEnumerable<B>>(list); //I wanted to use "B" here due to the fact I will have many inherited classes of B. I don't want to restrict to a specific child class of B. 
+0

我投票結束這個問題作爲題外話,因爲這只是一個是/否的問題。無論如何你必須驗證答案,所以你最好不要問就馬上試試。 –

+0

好的。讓我重新解釋這個問題,然後因爲我無法得到我想要的結果 – user1784014

回答