asp.net-mvc – 使用Automapper更新现有的实体POCO
发布时间:2020-12-16 00:07:48 所属栏目:asp.Net 来源:网络整理
导读:我使用EF4 DbContext为ASP.NET MVC应用程序提供模型.我使用ViewModels向视图提供数据,使用Automapper执行EF POCO和ViewModel之间的映射. Automapper做得很好,但在ViewModel发回控制器进行更新后,我不清楚使用它的最佳方法. 我的想法是使用ViewModel中包含的
我使用EF4 DbContext为ASP.NET MVC应用程序提供模型.我使用ViewModels向视图提供数据,使用Automapper执行EF POCO和ViewModel之间的映射. Automapper做得很好,但在ViewModel发回控制器进行更新后,我不清楚使用它的最佳方法.
我的想法是使用ViewModel中包含的密钥获取POCO对象.然后,我想使用Automapper使用ViewModel中的数据更新POCO: [HttpPost] public ActionResult Edit(PatientView viewModel) { Patient patient = db.Patients.Find(viewModel.Id); patient = Mapper.Map<ViewModel,Patient>(viewModel,patient); ... db.SaveChanges(); return RedirectToAction("Index"); } 两个问题: > Find()方法返回一个代理而不是一个导致Automapper投诉的POCO.我如何获得POCO而不是代理? 解决方法
如果您使用这样的Automapper,它将返回一个新的Patient对象,并且不会保留对enity框架图的引用.你必须像这样使用它:
[HttpPost] public ActionResult Edit(PatientView viewModel) { Patient patient = db.Patients.Find(viewModel.Id); Mapper.Map(viewModel,patient); ... db.SaveChanges(); return RedirectToAction("Index"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 什么是ASP.NET应用程序部署的最佳实践
- asp.net-mvc-4 – 如何在jQUERY中传递Id
- asp.net-mvc-3 – 默认路由不起作用
- 基于B/S模式的asp课程重难点掌握情况分析系统
- asp.net-ajax – ASP.Net AJAX UpdatePanel无法触发Selecte
- asp.net – 如何在运行时动态地在另一个ASPX的DIV中显示ASP
- asp.net-mvc – 如何让HTML DropDownListFor回发?
- asp.net – 我无法在我的visual studio 2012(express editi
- asp.net – 是否可以强制WebControl呈现为而不是?
- ASP.NET或SQL Server 2008中的并发更新处理
推荐文章
站长推荐
- 如何使用Entity Framework创建数据集并在asp.net
- 基于Asp.Net MVC动作的自定义授权
- 浅谈Quartz.Net 从无到有创建实例
- asp.net-core – xunit无法使用ASP.NET Core RC2
- asp.net-mvc – 从nopCommerce插件扩展Razor Par
- win10+CUDA8.0+VS2013环境配置
- asp.net-mvc-3 – ASP.NET MVC – 在不重写方法的
- asp.net – 带标题的Response.Redirect
- asp.net-mvc – 将依赖项注入验证属性Web Api As
- asp.net-mvc – 属性级验证错误阻碍了类级验证的
热点阅读