我已经阅读了关于Stackoverflow和其他地方完全相同问题的大部分评论和反馈,但没有一个解决方案适合我。
我的情景。
我有一个编辑屏幕,用于填充ViewModal中的数据。
用户点击“更新”按钮后,我使用AutoMapper将ViewModel映射回实体,以便我可以更新数据。
$myquery=mysql_query("SELECT zaid,zatext, MAX(zatitle) as zatitle FROM announcements")
我的错误是,在这一点上,我没有实体框架实体引用,一个简单的POCO从ViewModel映射。
为什么EF会告诉我由于现有主键而无法附加/添加或修改实体?这不是更新,采用已经存在的实体,并保存更改吗?
在UoW中,编辑看起来像这样(注释掉我已经尝试过的东西):
[HttpPost]
public JsonResult Edit(Core.ViewModels.BuildingViewModel model)
{
ViewBag.Title = "Building | Edit";
try
{
var entity = model.ToEntity<BuildingViewModel, Core.Entities.Building>();
Transactions.Broker.AskFor.Building.Update(entity);
return Json(new { IsSuccess = true, Message = "Building successfully updated", Identity = entity.Id });
}
catch (System.Exception ex)
{
throw ex;
}
}
我也没有看到关闭上下文跟踪的目的,这似乎可以解决问题。
我是否遗漏了EF中的某些内容,或者尝试做一些不支持的内容?