繁体   English   中英

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

[英]AutoMapper mapping two concrete classes that share an interface

我有一个描述两个对象的接口。 一个是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. 为什么我需要为相同的界面创建地图?

提前致谢。

  1. 这是映射的好方法。 但是,如果要减少CreateMap调用的次数,请创建一个将创建所有地图的方法,然后在每个应用程序域中调用一次。 例如来自某个静态构造函数或另一个应用程序启动事件。 看看他们如何在入门中推荐它

  2. 我猜,即使是对于同一接口,也应该有一张地图。 从好的方面来说,它使您的生活更加轻松,您不必创建诸如此类的地图,并且无需做很多其他事情。 虽然这可能是一种优化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM