1

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

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 加到战士实体中的属性 Draw。

4

2 回答 2

3

您正在尝试保存它而不实际将其添加到数据库表中。看起来您正在使用实体框架。假设是这样,您将执行以下操作。

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

编辑:更新语法。这是不正确的。

于 2013-01-25T21:06:26.753 回答
0

在执行 db.SaveChanges(); 之前,您必须执行类似 db.Add(object) 的操作;

于 2013-01-25T21:07:58.950 回答