Я работаю над первым подходом к базе данных с Entity Framework 4.1. У меня есть 2 связанных между собой объекта Book и Library. У меня также есть одна соединительная таблица с 10 столбцами для хранения информации о конкретной копии книги в библиотеке с отношением один ко многим как с объектами BOOK, так и с LIBRARY. Я создал представление, которое отправляет объект JSON с дочерним объектом в нем, который соответствует определению моего BookVieMOdel. Представление работает нормально, но у меня возникают проблемы с добавлением новых записей в таблицу соединений в контроллере. Я получаю сообщение об ошибке "Добавление связи с объектом, находящимся в состоянии "Удалено", не разрешено". Я предполагаю, что ошибка относится к удаленному объекту, который был удален, когда book.LibraryBookCopies.Clear();
, но не могу думать о том, чтобы сделать это по-другому.
Спасибо,
КОНТРОЛЛЕР:
[HttpPost]
public ActionResult Edit(BookViewModel bookv)
{
Mapper.CreateMap< BookViewModel,Book>();
Book book = Mapper.Map<BookViewModel,Book>(bookv);
db.Books.Attach(book);
db.ObjectStateManager.ChangeObjectState(book, EntityState.Modified);
//Add library ref to each libraryBookCopies object in Book
foreach (LibraryBookCopy lBC in book.LibraryBookCopies)
{
lBC.Library = db.Libraries.Single(l => l.LibraryId == lBC.LibraryId);
}
//Remove all currently related records
book.LibraryBookCopies.Clear();
//Add copies from ViewModel to book object
foreach (LibraryBookCopy lBC in bookv.LibraryBookCopies)
{ book.LibraryBookCopies.Add(lBC); //Error here }
db.SaveChanges();
return RedirectToAction("Index");
}