2015-04-15 32 views
0

我想更新现有表中的记录。但没有更新。它只是默默地通过db.SaveChanges()。 synched仍然是false,并且practiceID仍然为空。请帮忙。无法更新实体框架6

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!"; 

UPDATE

这是正确的,但不更新PortalPracticeID已同步列。同步被定义为我的数据库中的一个位非空默认值(0)列。我不知道为什么我不能够更新同步到1

更新2

刚刚意识到我有另一个目的是更新同步的标志0上计划表的更新触发,只要一有更新发生在计划表。一旦我禁用该触发器,它就会按预期工作。感谢大家的帮助。 @Sohaty db.database.log是我学​​到的新东西,谢谢。

+0

SaveChanges()返回它受到影响的记录数。你的情况回报是什么? “日程安排”中有多少个“时间表”? –

+0

我获得的记录数量为4. – user3817538

+0

你应该完全不需要附加,是吗?如果你刚从'db'得到它应该已经连接 – DLeh

回答

0

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

尝试对where子句中的IEnumerable结果执行foreach。

+0

如果我没有ToList()。我得到IQueryable。同样的事情发生,没有更新。 – user3817538