大家好我有以下方法:
var usuario;
usuario = UniapontaService.GetUsuarioUniapontaPlanejamentoEstrategico(x => x.IdUsuario == VWUsuarioUniaponta.IdUsuario &&
x.PlanejamentoEstrategico.IdPlanejamentoEstrategico == HorarioTrabalhoCorrente.PlanejamentoEstrategico.IdPlanejamentoEstrategico);
TxtTotalHorasMes.Text = usuario.QuantidadeHorasDisponivelMes.ToString();
usuario = null;
当执行此方法,然后再次执行它时,似乎EF或其他东西正在缓存第一个查询的值: 例子:通过方法,查询为25的usuario,然后我在执行中设置null(这是一个测试),甚至在数据库中更改该值,当它再次传递此方法时,变量仍然是25 ....当我在另一个方法中保存更改时,它会尝试从另一个方法中保存usuario。这似乎是错误的,因为变量范围是本地的而不是全局的 问题是,当方法结束时,它不应该破坏该变量? 我怎么能解决这个问题?
答案 0 :(得分:2)
EF的ObjectContext跟踪它加载的对象。如果再次询问对象,它会为您提供之前给出的相同实例(而不是副本)。
http://msdn.microsoft.com/en-us/library/bb896269.aspx
ObjectContext实例是这些实例的范围。如果要启动新的UnitOfWork,则应该从新的ObjectContext开始。