请问有人可以指导如何在AutoMapper中使用条件映射,根据现有的目标属性值从源对象映射到目标对象中的一个值?我的源类是:
我希望将目标对象中的“Nickname”属性值设置为与源对象中的“Nickname”属性值匹配,但前提是目标对象的“NicknameIsVisible”属性值已经设置为TRUE。否则,我希望将目标对象的“Nickname”属性值设置为空字符串。
我尝试过类似于以下代码(无法编译)...
但是“NicknameIsVisible”不是我的源代码的属性,而是我的目标代码的属性。
顺便说一下,我的ProfileViewModel使用Owain Wragg的方法绑定到三个实体(http://consultingblogs.emc.com/owainwragg/archive/2010/12/22/automapper-mapping-from-multiple-objects.aspx),另一个实体提供了“NicknameIsVisible”属性的值。
请问有人能建议我如何解决这个问题的正确语法吗?
public class UserDetails
{
public String Nickname { get; set; }
}
我的目标类是:
public class ProfileViewModel
{
public Boolean NicknameIsVisible { get; set;
public String Nickname { get; set; }
}
我希望将目标对象中的“Nickname”属性值设置为与源对象中的“Nickname”属性值匹配,但前提是目标对象的“NicknameIsVisible”属性值已经设置为TRUE。否则,我希望将目标对象的“Nickname”属性值设置为空字符串。
我尝试过类似于以下代码(无法编译)...
Mapper.CreateMap<UserDetails, ProfileViewModel>()
.ForMember(
destination => destination.Nickname,
option => option.
.MapFrom(
source => source.NicknameIsVisible ?
source.Nickname :
String.Empty)
);
但是“NicknameIsVisible”不是我的源代码的属性,而是我的目标代码的属性。
顺便说一下,我的ProfileViewModel使用Owain Wragg的方法绑定到三个实体(http://consultingblogs.emc.com/owainwragg/archive/2010/12/22/automapper-mapping-from-multiple-objects.aspx),另一个实体提供了“NicknameIsVisible”属性的值。
请问有人能建议我如何解决这个问题的正确语法吗?