我有此代码:
public ActionResult Details(string id, string detailsDate)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var tblPersonnel = new tblPersonnel();
using (var _context = new ScalehouseModel()) // for disposing
{
tblPersonnel = _context.tblPersonnels.Find(id);
}
if (tblPersonnel == null)
{
return HttpNotFound();
}
Mapper.Initialize(config => config.CreateMap<tblPersonnel, PersonnelDetailsVm>());
PersonnelDetailsVm person = Mapper.Map<tblPersonnel, PersonnelDetailsVm>(tblPersonnel);
.... // and more but the error happens on the line above.
}
ajax成功之后,我将重定向到“详细信息”页面,您可以在上面看到该操作。我遇到这样的运行时错误:
我已经研究了this并处置了我的EF,但仍然无法正常工作,并得到了相同的错误。
该怎么办才能解决此问题?
答案 0 :(得分:0)
为了使自动映射器工作,最好的方法是在管道中添加自动映射器配置。 这是你可以做的
第1步:创建一个静态的类映射配置文件,并将所有映射添加到该类中
public static class MappingProfile
{
public static MapperConfiguration InitializeAutoMapper()
{
MapperConfiguration config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<tblPersonnel, PersonnelDetailsVm>();
});
return config;
}
}
第2步:为了进行配置,请在Global.asax.cs的Application_Start()方法中注册自动映射器配置
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//Add AutoMapper configuration here.
MappingProfile.InitializeAutoMapper();
}
尝试一下。