C# EntityFramework保存行为奇怪的更改
我有一个奇怪的问题,让我描述一下情况: 我正在为数据库使用MVC3 w/C和entityframework 我有一个更新页面(针对事件),其中有许多可选字段,但是如果您之前已经完成了信息,这些字段不再是可选的,您可以更改它们 这段代码可以工作,它显示了我想要的错误,但是当我用空数据和正确的数据填写表单几次时,所有“错误”条目似乎都堆积起来了,并且在一个事务中都添加到了数据库中 我怀疑是SaveChanges() 我的代码:C# EntityFramework保存行为奇怪的更改,c#,entity-framework,asp.net-mvc-3,C#,Entity Framework,Asp.net Mvc 3,我有一个奇怪的问题,让我描述一下情况: 我正在为数据库使用MVC3 w/C和entityframework 我有一个更新页面(针对事件),其中有许多可选字段,但是如果您之前已经完成了信息,这些字段不再是可选的,您可以更改它们 这段代码可以工作,它显示了我想要的错误,但是当我用空数据和正确的数据填写表单几次时,所有“错误”条目似乎都堆积起来了,并且在一个事务中都添加到了数据库中 我怀疑是SaveChanges() 我的代码: [HttpPost] public ActionResult U
[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);
}
这里缺少什么?DbContext的生存期是多少?它是什么时候创建或处理的?它是一个单例,这是一个可能的错误,我会研究它。太好了,这就是问题所在!谢谢!