У меня странная проблема, позвольте мне набросать ситуацию:
Я использую 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);
}
Что-то мне здесь не хватает?