c# - 如何将外部和内部源映射到同一个对象 - 自动映射器
问题描述
我有这个结构:
public class UserEntity
{
public long Id { get; set; }
public string Name { get; set; }
public string UserName { get; set; }
public ComplexObject TimeZone { get; set; }
}
public class UserQueryResult
{
public UserEntity User { get; set; }
public ObjectId AccountId { get; set; }
}
public class UserDto
{
public long Id { get; set; }
public string Name { get; set; }
public string UserName { get; set; }
public string TimeZoneId { get; set; }
public string AccountId { get; set; }
}
我有 UserEntity 到 UserDto 的映射,如下所示:
CreateMap<UserEntity, UserDto>()
.ForMember(dest => dest.TimeZoneId, opt => opt.ResolveUsing<UserTimeZoneResolver>())
.ForMember(dest => dest.AccountId, opt => opt.Ignore());
如您所见,有一个从 UserEntity 到 UserDto 的解析器。现在,如果我想将 UserQueryResult 映射到 UserDto,我怎样才能重用上面的映射器而不需要手动映射所有属性?
CreateMap<UserQueryResult, UserDto>()
.ForMember(dest => dest.AccountId, opt => opt.MapFrom(src => src.AccountId.ToString()))
.// use the UserEntity to UserDto map?
解决方案
推荐阅读
- visual-studio-code - vs代码中特定变量的自定义着色
- audiokit - 模块“AudioKit”没有名为“inputDevices”的成员
- kubernetes - PVC 事件:等待由外部配置程序“csi.vsphere.vmware.com”创建或由系统管理员手动创建的卷
- angular - 多次点击 URL 最多 1 分钟
- twitter - fluentd twitter插件发生错误'access_token'参数是必需的,即使我写它
- html - CSS Topbar下拉悬停不工作
- c# - Activator.CreateInstance 与自定义类参数
- android - 在所有设备中关闭应用程序时是否有任何方法显示通知?
- vim - 将文件路径传递给 vim 中的 shell 命令
- css - 您是否需要在中预加载字体并在 CSS 中将它们声明为字体?