我有两个实体:问题和 Multiple_Choice_Question 。 Question对象具有Multiple_Choice_Question对象的列表。要编辑这些对象,我将Question和Multiple_Choice_Question对象列表传递给在我的asp.net网站上显示它们的ViewModel。
在[HttpPost]上,我从DBContext获取问题对象,并使用ViewModel中的新属性更改旧属性。然后是DBContext.SaveChanges();更新。
要更新Multiple_Choice_Question列表,请执行以下操作:
foreach (MCQ newmcqq in model.MCQ)
{
Multiple_Choice_Question item = new Multiple_Choice_Question();
item = db.Multiple_Choice_Question.First(x => x.mcq_id == newmcqq.mcq_id);
item.mcq_id = newmcqq.mcq_id;
item.choice_number = newmcqq.choice_number.ToString();
item.choice_wording = newmcqq.choice_wording;
item.help_text = newmcqq.help_text;
}
db.SaveChanges();
有更好的选择吗?
答案 0 :(得分:0)
使用LINQ循环和更新单个项目是唯一的方法。它实际上不适用于批处理INSERT
或UPDATE
。
你在循环之外调用SaveChanges()
,所以这很好。这仍然只能扩展到某一点。你最终会遇到性能问题。