Если в моей базе данных есть 2 таблицы: Foo и bar . Foo идентифицируется FooId , а Bar идентифицируется BarId . A Bar может иметь от 0 до многих Foos , поэтому Foo имеет BarId в качестве внешнего ключа.
У меня есть модель, которая представляет это, и представление, которое можно использовать для редактирования Foo и выбора (из раскрывающегося списка) соответствующего Bar .
Учитывая следующий метод на контроллере:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formCollection)
{
Foo originalFoo = FooById(id);
if (!ModelState.IsValid)
{
return View(new VenueViewModel(originalVenue, _db.GetCounties(), _db.VenueTypeSet));
}
UpdateModel(originalFoo);
/* Instead of using UpdateModel I could just iterate through
formCollection and manually update originalFoo, it would
work but surely there is a better way? */
_db.SaveChanges();
return RedirectToAction("Index");
}
При вызове UpdateModel выдается InvalidOperationException без InnerException :
The model of type 'TestApplication.Models.Foo' was not successfully updated.
Какой правильный способ для моего контроллера обновить мою модель на основе Entity Framework из выпадающего списка?