我有一个列表,它接收两个对象,我想更新每个对象中的相同列并将其保存到数据库中。我试过这个,但它不起作用。正确的对象在列表中,因为我设置了一个下拉框来检查它们是否是。
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加入战斗机实体中的属性。
答案 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)之类的事情;