你的位置:首页 > 软件开发 > ASP.net > 基础才是重中之重~AutoMapper为已有目标对象映射

基础才是重中之重~AutoMapper为已有目标对象映射

发布时间:2015-11-13 16:00:26
回到目录AutoMapper各位一定不会陌生,大叔之前的文章中也提到过,曾经也写过扩展方法,以方便程序开发人员去使用它,而在最近,大叔在一个API项目里,在一个POST请求由DTO对象为实体对象赋值时,出现了一个问题,使用大叔不得不对原有扩展方法再进行二次的补充。事情是这样的,有 ...

回到目录

AutoMapper各位一定不会陌生,大叔之前的文章中也提到过,曾经也写过扩展方法,以方便程序开发人员去使用它,而在最近,大叔在一个API项目里,在一个POST请求由DTO对象为实体对象赋值时,出现了一个问题,使用大叔不得不对原有扩展方法再进行二次的补充。

事情是这样的,有一个DTO对象RequestUserInfo和一个数据库实体对象UserInfo,在进行POST时,将RequestUserInfo对象的值需要赋给UserInfo对象,我们知道DTO对象是根据接口要求从UserInfo里提取的,它的属性要少于UserInfo,这在GET请求时,没有出现任何问题(由userinfo到RequestUserInfo的映射),把对应的属性值赋到了DTO对象上面,百在POST时,由于DTO对象的属性少,所以,UserInfo的某些属性没有被赋到值,出现了Null。

  /// <summary>  /// DTO 用户-请求参数  /// 输入参数各属性都是可空的,为空时不去验证,并且查询时不去构造查询条件  /// </summary>  public class RequestUserInfo : RequestBase  {    public int? Id { get; set; }    [MaxLength(10, ErrorMessage = "用户名最多为10个字符")]    public string UserName { get; set; }    [EmailAddress(ErrorMessage = "Email地址不是合法的")]    public string Email { get; set; }    [MaxLength(20, ErrorMessage = "用户名最多为20个字符")]    public string RealName { get; set; }  }

原标题:基础才是重中之重~AutoMapper为已有目标对象映射

关键词:映射

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。