现有两个实体类
public class One { public string Name; public string Sex; } public class Two { public string Name; }
配置映射two赋值给one
Mapper.Initialize(x => x.AddProfile<UserProfile>()); One one = new One { Name = "张三", Sex = "1" }; Two two = new Two { Name = "李四" }; one = Mapper.Map<Two, One>(two);
one中的Sex值会变为null,我想保留原始Sex的值,该怎么处理
这个除非你再多建立一个字段去保存sex的值。 因为automapper是将A实体的属性映射到B实体(相同的字段)。
只能这样吗,这样使用起来会很不方便
@屋檐不懂雨: 就你这个实例来说 将Two映射到One 中 你Two实体类中是没有Sex字段的。 所以映射之后 One的Sex肯定是为NULL的
@初夏的阳光丶: 关键我两个实体类的功能是不一样的,为了解决这个问题在Two中再加个字段有点将就
@屋檐不懂雨: 那这里还是不建议用AutoMapper了 因为这个本意是讲两个大致相同的实体进行映射
我觉得 AutoMapper 就是在model 的基础上封装一下 不太多的暴露到表现层,解耦表现层与model的关系.... (自己理解)
参考了 这篇博客:
https://blog.csdn.net/wtf123654789/article/details/90445513
这种应用方式看着好怪。通常 Mapper 用来方便的将某一个数据实体转化到另一个实体。
而你的需求是将 一个数据实体转化到一个 已存在 的实体且保留这个实体的即有数据。。
mvvm中automapper保存全局配置的