我正在使用EF 4.1,在我的应用程序的某个点上,我通过执行以下内容从实体中读取满足条件的所有数据:
context.Entity.Where(<condition>)
然后,我通过循环迭代它们,在特定情况下,我将它们中的一些存储到一个Dictionary中(键值是实体的Id,值是整个对象)。
稍后,在我的应用程序的另一点,我读取了字典中存储的所有对象,并更新它们。
更新它们之后,我在上下文中执行SaveChanges(上下文与读取整个实体时以及存储在字典中的项目时使用的相同。
所以在这一点上,我想知道当我执行savechanges时,数据是否被发送到数据库并正确地进行了更新,因为我不确定修改的对象是否来自字典,我不知道是否EF非常聪明,知道它应该更新数据库。
答案 0 :(得分:1)
字典以及EF上下文保存对对象的引用。只要不处理上下文,它就能够跟踪更改。
换句话说,将您的实体放在字典(或列表或任何其他收集方式)中对实体及其上下文没有影响。