我有一个奇怪的问题,让我描述一下情况:
我正在使用MVC3 w / C#和entityframework作为数据库
我有一个包含许多可选字段的更新页面(对于某个事件),但是如果您之前已经完成了这些信息,则这些字段不再是可选字段,您可以更改它们。
这段代码有效,它显示了我想要的错误,但是当我用空数据填写表格几次然后使用正确的数据时,所有“错误”的条目似乎已经堆积起来并且都被添加到1个事务中的数据库。
我怀疑它是SaveChanges()
我的代码:
[HttpPost]
public ActionResult Update(int id, HttpPostedFileBase logoupload, Event @event) {
try {
...
var originalEvent = _eventMapper.GetEventById(id);
@event.naam = originalEvent.naam;
@event.beginDatum = originalEvent.eindDatum;
@event.omschrijving = originalEvent.omschrijving;
@event.sportID = originalEvent.sportID;
@event.Sport = originalEvent.Sport;
@event.organisatorID = originalEvent.organisatorID;
@event.code = originalEvent.code;
@event.Organizer = originalEvent.Organizer;
var firstTime = true;
if(originalEvent.HasCompleteData())
{
firstTime = false;
if(!@event.HasCompleteData())
{
ViewBag.IncompleteError = "You can't omit values that were previously filled in.";
return View(@event);
}
}
TryUpdateModel(originalEvent);
Db.SaveChanges();
if (@event.HasCompleteData() && firstTime) {
Mailer.SendOrganiserUpdatedData(@event);
}
return RedirectToAction("Index");
} catch {
return View(@event);
}
我在这里缺少什么?