AutoMapper中针对指定的属性定制转换规则

public class MyMVCProfile : Profile
    {
        public override string ProfileName
        {
            get { return "MyMVCProfile"; }
        }
        protected override void Configure()
        {
            Mapper.CreateMap<ColumnInIdeaModel, ColumnInIdea>().ForMember(dest => dest.DataTypeId,
                               m => m.ResolveUsing(ResolveColumnInIdeaModel));
        }

       
        private object ResolveColumnInIdeaModel(ColumnInIdeaModel c)
        {
            switch (c.MyDataTypeId)
            {
                case DataTypeId.Money: return 0;
                case DataTypeId.Number: return 1;
                case DataTypeId.Datetime: return 2;
                case DataTypeId.LongText: return 3;
                case DataTypeId.ShortText: return 4;
                case DataTypeId.IdeaType: return 5;
                case DataTypeId.Status: return 6;
            }
            return null;
        }

    }

此时,对于指定的字段,使用指定的方法进行转换。剩下的字段,按同名的字段进行匹配。这里的Profile类只是一个转换器。这个转换器要加入到Mapper中才能够使用。

Mapper.Configuration.AddProfileThreadSafe(Activator.CreateInstance(typeof(MyMVCProfile)) as Profile);

现在,使用Mapper.Map<Entity>(Model m)就能返回需要的转换后的实体了。


你可能感兴趣的:(AutoMapper中针对指定的属性定制转换规则)