2015-10-26 184 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

回答