Kas*_*sem 1 asp.net-mvc automapper asp.net-mvc-3
我读了几篇文章,我看过MvcConf 1中的视频,其中Jimmy Bogard演示了AutoMapper的使用,但我仍然感到困惑.
我有一个User POCO类,它有很多属性.我还有一个RegisterViewModel类,它包含User类属性的子集.现在,当用户注册时,她将把数据填充到传递给视图的空RegisterViewModel实例中.然后,此数据必须映射到要添加到数据库的User实例,但是User上有某些属性需要作为默认值输入(类似于RegistrationDate应该分配给DateTime.Now).在这种情况下我该怎么办?
而且,假设我正在更新User实例.首先,我需要从数据库中获取数据并将其映射到UpdateUserViewModel类.然后,当用户提交更改时,必须将这些更改映射回User实例.在这种情况下,我是否需要在配置文件中执行两个单独的Mapper.CreateMap <>()条目,或者AutoMapper是否会自动为我执行此操作?
我想这就是现在,你的帮助将受到高度赞赏!:)
对于第一个场景,您可以在映射中定义缺少的属性:
Mapper
.CreateMap<RegisterViewModel, User>()
.ForMember(
dest => dest.RegistrationDate,
opt => opt.UseValue(DateTime.Now)
);
Run Code Online (Sandbox Code Playgroud)
对于第二种情况,您需要两个单独的映射,因为AutoMapper不会自动定义双向映射:
Mapper.CreateMap<UpdateUserViewModel, User>();
Mapper.CreateMap<User, UpdateUserViewModel>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
577 次 |
| 最近记录: |