我需要在对象之间做一些映射(例如 PersonModel 到 PersonViewModel),并且正在研究不同的方法来做到这一点。具体来说,我正在使用实体框架并尝试将生成的模型映射到视图模型。
但是,我还没有找到一篇文章或资源来编译如何执行此操作的列表。到目前为止,我遇到了以下情况:
- 隐式转换(我认为这是最基本的方法?因为您手动将属性从一个对象映射到另一个对象,它简单但乏味)
- 扩展方法(尚未使用此方法)
- 反射(我做了一些修改,但只管理了非常基本的映射)
- Automapper(非常流行,但我无法使其与 EF 一起正常工作)
- 价值注入器(尚未使用此功能)
- Emit Mapper(尚未使用此功能,但可能我无法使其与 EF 一起使用?)
您能否帮助指出并详细说明那里可用的方法以及每种方法的优缺点?例如,我看到一些提到 Automapper 比手动映射慢?或者可能,指出一篇解决这个问题的文章?
编辑:因为有些人可能会问我对 AutoMapper 有什么问题,请参阅:Automapper:如何将 IList 映射到 EntityCollection