AutoMapper映射共享接口的两个具体类

时间:2012-09-04 18:05:48

标签: c# interface automapper automapper-2

我有一个描述两个对象的界面。一个是DAO,另一个是BO。所以,这就是它的样子:

public interface IOrder ...

public class OrderDAO : IOrder ...

public class OrderBO : IOrder ...

我想将OrderDAO映射到OrderBO。我最初的想法是,我可以简单地将界面映射到界面并提供两个具体对象,如下所示:

AutoMapper.Mapper.Map<IOrder, IOrder>(myOrderDAO, myOrderBO);

然而,这并不是开箱即用的。我仍然需要创建一个地图,以便从myOrderDAO获取数据到myOrderBO。

AutoMapper.Mapper.CreateMap<IOrder, IOrder>();

我不确定这对我有多大意义,我觉得我“做错了”,就像它一样。所以我的问题是双重的。

  1. 在上述场景中映射的最佳方式是什么?
  2. 为什么我需要为同一个界面创建地图?
  3. 先谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 这是一种很好的地图绘制方式。但是,如果要减少CreateMap调用的数量,请创建一个方法来创建所有映射,然后为每个应用程序域调用一次。例如,从一些静态构造函数或另一个应用程序启动事件。见how they recommend it in their Get Started

  2. 我想,即使它是同一个界面,仍然应该有一张地图。在光明的一面,它让你的生活更轻松,你不必创建像以及更多的地图。这可能是一个优化。