1

私のプロジェクトでは、データベースに 4 つの変数があります。FileNumber、Number、LastFileNumber、および Company。

Number 値の数としてデータベースに作成したいと考えています。FileNumber が 5 で Number が 3 の場合、LastFileNumber は になり5 + 3 - 1 = 7、次のようにデータベースに保存する必要があります。

ファイル番号 5 番号 3 最後のファイル番号 7

ファイル番号 6 番号 3 最後のファイル番号 7

ファイル番号 7 番号 3 最後のファイル番号 7

私のコードは現在:

[HttpPost]

public ActionResult Create(Eur1 eur1)
{
    int filenum = Convert.ToInt32(eur1.FileNumber);
    int lastfilenum = Convert.ToInt32(eur1.LastFileNumber);
    int num = Convert.ToInt32(eur1.Number);

    if (ModelState.IsValid)
    {
        for(int i=0;i<=num;i++)
        {
            db.Eur1.AddObject(eur1);
            db.SaveChanges();
            lastfilenum = lastfilenum + 1;           
        }
        return RedirectToAction("Create");  
    }
    return RedirectToAction("Create");
}

もちろん、それは言っています

同じキーを持つオブジェクトが ObjectStateManager に既に存在します。既存のオブジェクトは Unchanged 状態です。オブジェクトは、追加された状態にある場合にのみ、ObjectStateManager に再度追加できます。

どうすればこれを修正できますか?

4

1 に答える 1

0

ループを見てください。まったく同じオブジェクトを何度forも追加します。eur1一方、 の代入はlastfilenum = lastfilenum + 1;意味がありませんlastfilenum。'.

ロジックを再確認してください。

于 2013-02-14T12:57:08.053 に答える