Rob*_*man 2 c# asp.net-mvc automapper
我有一个用VS2015开发的asp.net mvc应用程序.
在Global.asax.cs的Application_Start方法中,调用包含以下内容的方法:
Mapper.Initialize(cfg => cfg.CreateMap<Domain.ESB.Fault, Models.FaultVmRec>());
Mapper.Initialize(cfg => cfg.CreateMap<Models.FaultVmRec, Domain.ESB.Fault>());
Run Code Online (Sandbox Code Playgroud)
我已经检查过这是通过添加断点来执行的.
在我的控制器中,我有以下内容:
faultVmRec = Mapper.Map<Fault, FaultVmRec>(item);
Run Code Online (Sandbox Code Playgroud)
在这一行,我得到了例外:
{"缺少类型映射配置或不支持的映射.\ r \n\r \nMapping类型:\ r \nFault - > FaultVmRec\r \nLGSS.Unit4.BamPortal.Domain.ESB.Fault - > LGSS.Unit4.BamPortal.Website .Models.FaultVmRec\r \n\r \n目标路径:\ r \nFaultVmRec\r \n\r \nSource值:\ r \nSystem.Data.Entity.DynamicProxies.Fault_805BF7128A26886D33A8989DFA212C8E378EDADE588B0922B23ECFE7F697D907"}
但是,如果我粘贴以在执行映射之前显式初始化映射,如下所示:
Mapper.Initialize(cfg => cfg.CreateMap<Domain.ESB.Fault, Models.FaultVmRec>());
faultVmRec = Mapper.Map<Fault, FaultVmRec>(item);
Run Code Online (Sandbox Code Playgroud)
然后它工作正常!
有人知道我哪里出错吗?
Mapper.Initialize(cfg => cfg.CreateMap<Domain.ESB.Fault, Models.FaultVmRec>)); Mapper.Initialize(cfg => cfg.CreateMap<Models.FaultVmRec, Domain.ESB.Fault>());
此代码段会相互覆盖.你应该配置为:
Mapper.Initialize(cfg => {
cfg.CreateMap<Domain.ESB.Fault, Models.FaultVmRec>();
cfg.CreateMap<Models.FaultVmRec, Domain.ESB.Fault>();
cfg.
cfg... //so on
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |