我有一个简单的对象:public class Project : Entity{ public uint ProjectId { get; set; } public virtual ICollection<Cabin> Cabins { get; set; }}public class Cabin : Entity{ public IPAddress IpAddress { get; set; } public int Port { get; set; } public DateTime LastConnection { get; set; } public byte ConnectionStatus { get; set; } public byte TechnicalStatus { get; set; } public Project Project { get; set; } public int ProjectId { get; set; }}因此,使用自动映射器从一个映射到另一个带有一些忽略的映射看起来像: var mapperConfig = new MapperConfiguration(cfg => { cfg.CreateMap<Project, Project>() .ForMember(source => source.Id, opt => opt.Ignore()) .ForMember(source => source.ProjectId, opt => opt.Ignore()) .ForMember(source => source.Cabins, opt => opt.MapFrom(cab => cab.cabins)); });它可以将一个项目对象映射到另一个项目对象,并忽略 id 和项目 id 并映射集合。但是在那个级别上,是否可以设置 source.Cabins 中的哪些属性将被忽略?例如,我想忽略 ConnectionStatus、TechnicalStatus。
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
您可以为Cabin
实体添加配置映射,AutoMapper 会在映射 Cabin 实体之前查看这些配置。
cfg.CreateMap<Cabin, Cabin>() .ForMember(source => source.ConnectionStatus, opt => opt.Ignore()) .ForMember(source => source.TechnicalStatus, opt => opt.Ignore());
或者您可以使用 AfterMap 事件为这些属性定义默认值。
- 1 回答
- 0 关注
- 228 浏览
添加回答
举报
0/150
提交
取消