【发布时间】:2014-01-06 02:02:52
【问题描述】:
我刚刚开始在 MVC ASP.NET 项目中使用 AutoMapper 将我的域模型映射到我的视图模型。例如。
public class PersonModel
{
public string FirstName { get; set; }
public string NickName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
public class PersonViewModel
{
public string FirstName { get; set; }
public string NickName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
// Somewhere...
Mapper.CreateMap<PersonModel, PersonViewModel>();
Mapper.CreateMap<PersonViewModel, PersonModel>();
采用这种模式后,我担心将来会发生以下情况:
1) 开发人员 A 创建人员视图,显示所有 4x 属性的编辑器
2) 开发者 B 稍后从 Person View 中移除“Nickname”编辑器,但留在 PersonViewModel 中
3) 因为昵称值永远不会保留在视图中,因此在保存时提交,Automapper 开始从 PersonViewModel -> PersonModel 映射“昵称”的空值并覆盖数据而没有任何运行时或编译时警告。
这是一个合法的风险吗,您遇到过吗,您是如何处理的?
【问题讨论】:
标签: model-view-controller viewmodel automapper