1

在我的项目中,我的数据库中有四个变量。FileNumber、编号、LastFileNumber 和公司。

我想在我的数据库中创建数字值的数量。就像 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 中已存在具有相同键的对象。现有对象处于未更改状态。只有处于添加状态的对象才能再次添加到 ObjectStateManager。

我怎样才能解决这个问题?

4

1 回答 1

0

看看你的循环——你一次又一次地for添加同一个对象。eur1另一方面,赋值lastfilenum = lastfilenum + 1;没有意义,因为你没有对lastfilenum'做任何事情。

重新检查你的逻辑。

于 2013-02-14T12:57:08.053 回答