我正在尝试更新现有表中的记录。但没有任何东西得到更新。它只是默默地通过db.SaveChanges()
。 synched仍为false,而practiceID仍为null。请帮忙。
var schedules = db.Schedules
.Where(s => response.SucceededEhrAppointmentIDList.Contains(s.sche_id.ToString()))
.ToList();
foreach (Schedule schedule in schedules)
{
schedule.synched = true;
schedule.PortalPracticeID = practiceID;
}
db.SaveChanges();
return "Success!";
更新
正在更新PortalPracticeID而不是同步列。 synched在我的数据库中定义为一个非空的默认值(0)列。我不知道为什么我无法更新同步到1。
更新2
刚刚意识到我在计划表上有一个更新触发器用于另一个目的,只要在Schedule表上发生更新,就会将同步标志更新为0。一旦我禁用该触发器,它就会按预期工作。感谢大家的帮助。 @Sohaty db.database.log是我学到的新东西,谢谢。
答案 0 :(得分:0)
只是猜测,当你做ToList()时,你是不是从原始来源检索副本(一个不同的引用,你可以使用GetHashCode()方法看看是否相等)?
尝试从where子句开始执行IEnumerable结果。