2013-07-19 98 views
0

不知道为什么刚刚开始发生,但我有一个情况,我正在从数据库中读取的实体不包含以前从存储过程更新的新值。在存储过程进行更新后,我看到数据库中的更改,并且还调用UnitOfWork.Commit以保存其他任何更改。我想再打一次电话来获取这个项目,并且这些值与数据库中的值不一样。有什么理由呢?我不会在更新之前的任何地方抓取这个项目,所以我不知道EF在更新后第一次抓住它时是如何知道它的。工作单元和实体框架5不刷新实体

+0

当你提交时是否处理了ef上下文? –

+0

你如何从数据库中获得你的实体(没有看到更新值的实体)? – Chris

+0

是的,我正在使用存储库模式直接进入数据库。我将启用探查器在我的暂存站点上查看。 –

回答

0

我移动了一些逻辑,以便在任何EF调用之前更新该项目。

0

我在猜测实体框架以某种方式缓存这些值。我会尝试使用Refresh()方法强制实体框架返回到数据存储与RefreshMode.StoreWins,以确保数据存储值取胜。

+0

我在父实体上做过,但它们是包含在我的存储库GET中的子实体。也许一个新的儿童实体会起作用。这没有发生过,所以它的奇怪,这刚刚开始发生。 –