for ループで同じモデルを複数回保存できるようにする必要があります。私のアクションには、InventoryViewModel ムービーと int 数量の 2 つのパラメーターがあります。たとえば、数量が 3 の場合、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();
}