我正在使用AutoMapper,正在映射到的实体的某些值是我当前方法中的变量。我曾尝试过使用Google,但无济于事。我可以向我的映射传递一组KeyValue对或一个对象或某物以使其使用那些值吗?
//comment variable is a Comment class instance
var imageComment = AutoMapper.Mapper.Map<Data.ImageComment>(comment);
//I want to pass in imageId so I dont have to manually add it after the mapping
imageComment.ImageId = imageId;
AutoMapper开箱即用地处理此键值对方案。
Mapper.CreateMap<Source, Dest>()
.ForMember(d => d.Foo, opt => opt.ResolveUsing(res => res.Context.Options.Items["Foo"]));
然后在运行时:
Mapper.Map<Source, Dest>(src, opt => opt.Items["Foo"] = "Bar");
深入了解上下文项有点麻烦,但是您就可以开始了。
有什么方法可以将ResolveUsing与ConstructUsing方法一起使用?
该
ResolveUsing
方法是否可能不再仅将上下文作为参数接受lambda,还是我错过了扩展功能?我必须先定义一个lambda(input, output, memberValue, context)
作为参数,然后才能与Automapper 5.2一起使用。当然,它仍然可能是编译器,无法再确定需要使用哪个重载...5.x添加了重载,并且对这些重载进行了调整,以免出现奇怪的编译时错误。
我在res.Context中遇到错误-源模型不包含上下文定义。使用.net Core 2.0和AutoMapper 6.2.1