如标题所示,我有一个方法:
void method(MyDb db, Thread thread, Post post)
{
thread.Title = "changed";
db.SaveChanges();
}
(当然线程项目在 MyDb 对象中)
它如何识别需要更新的项目?我没有指定任何类似db.Update(thread)
或类似的东西,它知道在没有我帮助的情况下要更新什么。它下有哪些机制?
如标题所示,我有一个方法:
void method(MyDb db, Thread thread, Post post)
{
thread.Title = "changed";
db.SaveChanges();
}
(当然线程项目在 MyDb 对象中)
它如何识别需要更新的项目?我没有指定任何类似db.Update(thread)
或类似的东西,它知道在没有我帮助的情况下要更新什么。它下有哪些机制?
当您Thread
从数据库加载实体时,它默认变为“附加”。这意味着 EF 在内部保留对您的实体的引用,并且当您从数据库加载实体时,它还会保留实体的原始值。
当您更新标题时,可能有两种情况:
SaveChanges
SaveChanges
您可以在此处阅读有关该过程的更多信息。