我需要能够使用 for 循环多次保存同一个模型。我的 Action 有两个参数,InventoryViewModel 电影和 int 数量。如果数量为3,例如,我需要将三个副本保存到数据库中。
在我的控制器中,我有:
[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);
}
我认为设置 movie = new InventoryViewModel 会创建电影的新实例,但它不起作用。如果我去掉那条线,它会在将第一个副本添加到数据库后点击 else 语句。CheckoutNum 是表的主键,因此我无法在 for 循环中将其设置为 0。我不记得确切的错误,但它是关于主键无法修改的东西。
存储库:
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();
}