更新保存到数据库的对象列表

时间:2013-01-25 21:01:18

标签: c# asp.net-mvc model-view-controller asp.net-mvc-4

我有一个列表,它接收两个对象,我想更新每个对象中的相同列并将其保存到数据库中。我试过这个,但它不起作用。正确的对象在列表中,因为我设置了一个下拉框来检查它们是否是。

List<Fighter> item = fight.Fighters.ToList<Fighter>();
item.ToList().ForEach(c => c.Draw++);
            db.SaveChanges();

有什么想法吗?


战斗与战斗机之间存在多对多关系,两架战斗机属于战斗。

编辑:

[HttpPost]
    public ActionResult HandleResult(Fight fight)
    {

        List<Fighter> item = fight.Fighters.ToList<Fighter>();

        ... //Code here that isnt related

        foreach (var i in item)
                {
                    item.ToList().ForEach(c => c.Draw++);
                    db.Fighters.Add(i);
                }

                db.SaveChanges();
     }

正如你在httpPost中看到的那样,我希望得到参与战斗的战士,并将1加入战斗机实体中的属性。

2 个答案:

答案 0 :(得分:3)

您尝试保存它而不将其实际添加到数据库表中。看起来您正在使用Entity Framework。假设如此,您将执行以下操作。

List<Fighter> item = db.fight.Fighters.ToList<Fighter>();
item.ToList().ForEach(c => c.Draw++);
foreach (var i in item)
{
    db.fight.Fighters.AddObject(i);
}

db.SaveChanges();

编辑:更新了语法。这不对。

答案 1 :(得分:0)

在执行db.SaveChanges()之前,你必须做db.Add(object)之类的事情;