首页 > 解决方案 > 忽略 AutoMapper 中的基本属性

问题描述

我需要防止在映射配置文件中映射两个字段 ActionedBy 和 ActionedAt。这些是在基类中定义的。

这是在 c# 中最好的方法吗?是不是代码重复

public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap<OnboardingRules.Definition.AnnualCardTurnoverCustomRuleDefinition, 
                AnnualCardTurnoverCustomRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.ArrayComparisonRuleDefinition, 
                ArrayComparisonRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.MinimumAgeRuleDefinition, 
                MinimumAgeRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.MinimumTimeInBusinessRuleDefinition, 
                MinimumTimeInBusinessRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.NumericComparisonRuleDefinition, 
                NumericComparisonRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.RuleDefinition, 
                RuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.StringComparisonRuleDefinition, 
                StringComparisonRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.MccRuleDefinition, 
                MccRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.HighRiskCountryRuleDefinition, 
                HighRiskCountryRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
        CreateMap<OnboardingRules.Definition.CountyCourtJudgementRuleDefinition, 
                CountyCourtJudgementRuleDefinitionUpdatedMessage>()
            .ForMember(sr => sr.ActionedAt, opt => opt.Ignore())
            .ForMember(sr => sr.ActionedBy, opt => opt.Ignore());
    }
}

标签: c#automapper

解决方案


推荐阅读