无法更新实体框架6

时间:2015-04-15 17:49:24

标签: c# entity-framework-6

我正在尝试更新现有表中的记录。但没有任何东西得到更新。它只是默默地通过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是我学​​到的新东西,谢谢。

1 个答案:

答案 0 :(得分:0)

只是猜测,当你做ToList()时,你是不是从原始来源检索副本(一个不同的引用,你可以使用GetHashCode()方法看看是否相等)?

尝试从where子句开始执行IEnumerable结果。