【发布时间】:2015-03-07 07:38:32
【问题描述】:
我有一个 MVC5 EF6.1 应用程序,除了编辑记录之外,它在各个方面都按照我想要的方式工作。
我正在使用视图模型来处理创建和编辑表单。视图模型与实体模型相匹配,只是它不包含 Id,并且它具有一些用于处理文件上传的额外属性。
创建记录完美无缺。编辑表单按照应有的方式填充字段。更新时,会识别更改。
问题在于,不是更新记录,而是将反映更改的新记录添加到数据库中。应该更新的记录还在。
我已尽我所能尝试解决此问题。我尝试过使用和不使用 EntityState 进行更新。我尝试设置 OriginalValues 和 CurrentValues。我什至尝试过使用原始 SQL 语句。所有结果都相同:添加了一条新数据的记录,而原始数据保持不变。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int id, MyViewModel model)
{
var thisRecord = db.MyEntity.Find(id);
//some stuff to update thisRecord properties
db.SaveChanges();
}
这一切都很好。我能做些什么来改变我正在制作的唱片而不是制作新唱片? 任何帮助将不胜感激。这让我发疯了。
【问题讨论】:
标签: sql sql-server entity-framework model-view-controller sql-update