自动映射器在MVVM应用程序中使用

Ech*_*ban 3 model mvvm automapper

我正在构建一个MVVM应用程序.模型/实体(我正在使用NHibernate)已经完成,我正在考虑使用AutoMapper在ViewModel和Model之间进行映射.

然而,这个条款吓跑了我的jebus :(来自http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper.aspx)

AutoMapper强制对每个类型映射(源/目标对)强制执行,目标类型上的所有属性都与源类型上的某些属性匹配

对我来说,逻辑上的选择是从模型映射到viewmodel,(我会让viewmodel手动分配给模型),但引用基本上会杀死这个想法,因为viewmodel肯定会有模型上不存在的属性.

你是如何在MVVM应用程序中使用Automapper的?请帮忙!

R0M*_*RMY 7

当它表示"地图"时,并不意味着它是1对1的映射,它只是意味着需要考虑所有属性.Automapper可以从约定中找出它,显式映射它们,或者明确告诉它忽略给定的属性.

这是文档中的示例.正如您所看到的,属性在某种意义上被映射,但是Automapper知道只是忽略它.

Mapper.CreateMap<Source, Destination>()
    .ForMember(dest => dest.SomeValuefff, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)