0

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();
    }
4

1 に答える 1