我需要更新我的数据库,但我在SaveChanges()
语句中有一个无效的参数。
我做错了什么?
foreach (ViewModels.QuestionVM0 f in qe.QuestionOptions0)
{
// loop through records to update
int aID = qe.ActivityID.Value;
int tID = qe.TaskID.Value;
int qNo = f.QuestionNo.Value;
Models.question1 questionCreate = new question1();
questionCreate.ActivityID = aID;
questionCreate.TaskID = tID;
questionCreate.QuestionNo = qNo;
db.SaveChanges(questionCreate);
}
答案 0 :(得分:2)
希望这会很好用:
int aID, tID, qNo;
Models.question1 questionCreate;
foreach (ViewModels.QuestionVM0 f in qe.QuestionOptions0)
{
// loop through records to update
aID = qe.ActivityID.Value;
tID = qe.TaskID.Value;
qNo = f.QuestionNo.Value;
questionCreate = new question1();
questionCreate.ActivityID = aID;
questionCreate.TaskID = tID;
questionCreate.QuestionNo = qNo;
// For Insert new row
db.question1.Add(questionCreate);
// For Update exsisting row
db.Entry(questionCreate).State = EntityState.Modified;
db.SaveChanges();
}
您可以在循环后调用db.SaveChanges()。
答案 1 :(得分:0)
您不必向SaveChanges
方法传递任何内容。 EF(我猜你使用它)会不断跟踪所有更改,因此它已经知道必须更新的内容。
db.SaveChanges();
顺便说一句,你不应该在每次迭代时调用SaveChanges
。在foreach
之后调用它来使SQL只到达一次,而不是一次又一次地到达每一行。