从AutoMapper 4.2.1升级到5.0.0,如果不提供配置,我不能再这样做了:
var entity = Mapper.Map<Dictionary<string, object>, MyEntity>(feature.Attributes);
以前,AutoMapper会自动计算出Dictionary键直接映射到属性名,而不需要任何设置。
我已经尝试了初始化使用:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Dictionary<string, object>, MyEntity>();
cfg.CreateMap<Dictionary<string, object>, MyOtherEntity>();
});
但是这会导致我的实体属性为空,因为AutoMapper不再以这种方式自动连接它以前的内置字典映射器。
我假设我需要使用ProjectUsing()
之类的东西,但我还没有设法找到内置的AutoMapper映射器。
我确信这是一个非常简单的代码问题来解决。有什么快速提示吗?或者甚至链接到相关的文件,我可能会错过什么?提前感谢!
您可以使用动态映射:
var dic = new Dictionary<string, string>();
dic.Add("foo", "bar");
var test = Mapper.DynamicMap<Dictionary<string, string>>(dic);