我正在尝试更新数据库中存在的多个对象并保存新对象,但它不起作用?
下面是我的代码:
[HttpPost]
public ActionResult Edit(MasterModel Model)
{
DBEntities db = new DBEntities();
var reloadView = true;
for(int i = 0 ;i< Model.Emails.Count(); i++)
{
if(Model.Emails[i].ID > 0 )
{
var id = Model.Emails[i].ID;
var email = db.EMAIL.Single(e=> e.ID == id);
if(TryValidateModel(Model.Emails[i], "Emails[" +i.ToString() + "]"))
{
TryUpdateModel(email, "Emails[" + i.ToString() + "]");
reloadView = false;
}
else
{
reloadView = true;
}
}
else
{
if(TryValidateModel(Model.Emails[i], "Emails[" + i.ToString() + "]"))
{
db.AddToEMAIL(Model.Emails[i]);
reloadView = false;
}
else
{
reloadView = true;
}
}
}
if(reloadView)
{
return View(Model);
}
else
{
db.SaveChanges();
return RedirectToAction("Index");
}
}如果在TryUpdateModel之后执行db.SaveChanges();我会得到一个具有引用完整性的System.Data.UpdateException
如果我让我的代码像在示例中一样,它就不会更新!
哦,对了,我也尝试过UpdateModel()。
有什么建议吗?
提前感谢!
干杯
发布于 2011-11-04 00:57:37
更新对象的通常工作流程是:
1)加载旧对象(使用id) 2)更改属性3) SaveChanges
https://stackoverflow.com/questions/7998559
复制相似问题