0
我張貼的模型對象從視圖中,父母與孩子名單存在,還我正在彼此對象,我從database.So取我比較對象,如更新,並通過模型刪除記錄在asp.net mvc的結合
public bool ChildRecords(CheckListTemplate questList)
{
int templateId = questList.Id;
if (templateId > 0 && questList.Questions.Count() > 0)
{
var template =DBContext.CheckListTemplates.Include(p => p.Questions).SingleOrDefault(p => p.Id == templateId);
template.Name = questList.Name;
List<CheckListQuestion> delQuestions = new List<CheckListQuestion>();
foreach(CheckListQuestion q in template.Questions)
{
var question = questList.Questions.Where(x => x.Id == q.Id).FirstOrDefault();
if (question == null)
{
delQuestions.Add(q);
}
else
{
q.Question = question.Question;
q.Clause = question.Clause;
}
}
if(delQuestions.Count()>0)
{
foreach(CheckListQuestion qst in delQuestions)
{
var itemToRemove = template.Questions.Single(r => r.Id == qst.Id);
template.Questions.Remove(qst);
}
}
DBContext.Entry(template).State = EntityState.Modified;
DBContext.SaveChanges();
}
我更新和刪除records.If我更新的記錄功能,做工精細,但是當我刪除的記錄和發佈視圖,然後DBContext.Entry(模板).STATE = EntityState.Modified; 給出了錯誤。我如何刪除記錄。我在代碼裏面缺少了什麼。
我不是刪除循環中的記錄。我只是在對象列表中添加並在循環完成時刪除。我希望通過修改的實體狀態通過一個對象列表進行操作。 –
這是你不能做的。這就是我正在談論的.... foreach(CheckListQuestion qst in delQuestions) var itemToRemove = template.Questions.Single(r => r.Id == qst.Id); template.Questions.Remove(qst); } 如果你真的需要做到這一點由於某種原因,使用了代替的foreach。 –