我有两个应用程序:一个应用程序是 asp.net,另一个是在后台运行的 Windows 服务。
在后台运行的 Windows 服务正在对数据库执行一些任务(读取和更新),而用户可以通过 asp.net 应用程序对数据库执行其他操作。所以我很担心,例如,在 Windows 服务中,我收集了一些满足条件的记录,然后对它们进行迭代,例如:
IQueryable<EntityA> collection = context.EntitiesA.where(<condition>)
foreach (EntityA entity in collection)
{
// do some stuff
}
那么,如果用户修改了稍后在循环迭代中使用的记录,那么 EF 会考虑该记录的什么值?执行时检索到的原件:
context.EntitiesA.where(<condition>)
还是由用户修改并位于数据库中的新的?
据我所知,在迭代期间,EF 会根据需要获取每条记录,我的意思是,一条一条地读取,因此在为下一次迭代读取下一条记录时,该记录对应于从以下位置收集的记录:
context.EntitiesA.where(<condition>)
还是位于数据库中的那个(用户刚刚修改的那个)?
谢谢!