Asp.net C#Mvc3将数据库添加为输入值

时间:2013-02-14 12:15:08

标签: c# asp.net-mvc-3

在我的项目中,我的数据库中有四个变量。 FileNumber,Number,LastFileNumber and Company。

我想在我的数据库中创建Number值的数量。就像FileNumber是5而Number是3一样,LastFileNumber将是5 + 3 - 1 = 7,它应该保存到数据库,如

  

FileNumber 5 Number 3 LastFileNumber 7

     

FileNumber 6 Number 3 LastFileNumber 7

     

FileNumber 7 Number 3 LastFileNumber 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。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

查看您的for循环 - 您一次又一次地添加相同的eur1对象。另一方面,lastfilenum = lastfilenum + 1;的分配没有任何意义,因为您对lastfilenum'没有做任何事情。

重新检查你的逻辑。