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

来源:互联网 发布:万国数据上海 福利待遇 编辑:程序博客网 时间:2024/06/08 18:30
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)就能返回需要的转换后的实体了。


原创粉丝点击