从AutoMapper 4.2.1升级到5.0.0如果不提供配置,我就无法再这样做了:
$ perl -MO=Concise -e'keys main::'
Hash %main missing the % in argument 1 of keys() at -e line 1.
6 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
5 <1> keys[t2] vK/1 ->6
4 <1> rv2hv[t1] lKRM/1 ->5
3 <$> gv(*main) s ->4
-e syntax OK
$ perl -MO=Concise -e'keys ::'
Hash %:: missing the % in argument 1 of keys() at -e line 1.
6 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
5 <1> keys[t2] vK/1 ->6
4 <1> rv2hv[t1] lKRM/1 ->5
3 <$> gv(*main::) s ->4
-e syntax OK
以前,AutoMapper会自动计算出Dictionary键直接映射到属性名称而无需任何设置。
我尝试使用以下方式进行初始化:
var entity = Mapper.Map<Dictionary<string, object>, MyEntity>(feature.Attributes);
但是这导致我的实体中出现null属性,因为AutoMapper不再以这种方式自动连接它之前的内置Dictionary mapper。
我认为我需要使用类似Mapper.Initialize(cfg =>
{
cfg.CreateMap<Dictionary<string, object>, MyEntity>();
cfg.CreateMap<Dictionary<string, object>, MyOtherEntity>();
});
的内容,但我还没有设法找到内置的AutoMapper地图制作工具。
我确定这是一个非常简单的代码问题需要解决。有什么快速指针吗?甚至链接到我可能错过的相关文档?提前谢谢!
答案 0 :(得分:0)
您可以使用动态地图:
var dic = new Dictionary<string, string>();
dic.Add("foo", "bar");
var test = Mapper.DynamicMap<Dictionary<string, string>>(dic);