Мне нужно иметь возможность сохранять одну и ту же модель несколько раз с помощью цикла for. Мое действие имеет два параметра: InventoryViewModel movie и количество int. Если, например, количество равно 3, мне нужно сохранить три копии в базе данных.MVC3 Сохранить модель несколько раз
В моем контроллере у меня есть:
[HttpPost]
public ActionResult addInventory(InventoryViewModel movie, int Quantity)
{
movie.Inventory.isAvail = true;
if (ModelState.IsValid)
{
for (int i = 0; i < Quantity; i++)
{
inventoryRepository.save(movie.Inventory);
movie = new InventoryViewModel();
}
return RedirectToAction("index");
}
return View("index", movie);
}
Я думал, установив фильм = новый InventoryViewModel создаст новый экземпляр фильма, но он не работает. Если я выберу эту строку, она будет удаляться в оператор else после добавления первой копии в базу данных. CheckoutNum является основным ключом таблицы, поэтому я не могу установить его в 0 в цикле for. Я не могу вспомнить точную ошибку, но это не значит, что первичный ключ не может быть изменен.
Repository:
public void save(Inventory movie)
{
if (movie.CheckoutNum == 0)
db.Inventory.Add(movie);
else
db.Entry<Inventory>(movie).State = System.Data.EntityState.Modified;
db.SaveChanges();
}
Это вытирает фильм, когда я это делаю. – Andrew
Вы можете игнорировать предыдущий комментарий, я понимаю, что вы имели в виду сейчас. Я пропустил ваш комментарий. Благодаря! – Andrew