我使用Automapper将数据从objectA传输到objectB
classe ObjectA
{
string Title;
string Summary;
}
classe ObjectB
{
string Title;
string Summary;
IAddress Address;
}
Run Code Online (Sandbox Code Playgroud)
我在两个对象之间创建了这种映射
AutoMapper.Mapper.CreateMap<IObectA, IObjectB>()
.ForMember(dest => dest.Title, src => src.MapFrom(s => s.Title))
.ForMember(dest => dest.Summary, src => src.MapFrom(s => s.Summary))
.ForMember(dest => dest.Address, src => src.Ignore())
Run Code Online (Sandbox Code Playgroud)
我创建我的ObjectB并填充其所有属性,包括地址
当我调用mapper时,我希望它覆盖Title和Summary并忽略Address
ObjectB = Mapper.Map<IObjectA, IObjectB>(objectA);
Run Code Online (Sandbox Code Playgroud)
实际上,它是地址的抛出和异常.
我究竟做错了什么?
[更新] 为了表达不同,我有我的objectB,我想用来自ObjectA的数据更新它的一部分.当我说Ignore时,我的意思是以他们已经存在的方式保留数据
use*_*411 34
我找到了解决方案.
我刚刚发现Map方法有一个超出预先实例化的目标对象的重载版本.感谢这篇文章
Mapper.Map<IObjectA, IObjectB>(objectA, ObjectB );
Run Code Online (Sandbox Code Playgroud)
@JoDG,谢谢你的帮助
| 归档时间: |
|
| 查看次数: |
6286 次 |
| 最近记录: |