Entity framework 视图';实体框架中的s赢得';t更新

Entity framework 视图';实体框架中的s赢得';t更新,entity-framework,view,Entity Framework,View,我有一个视图,其中包含来自多个表的数据 当我调用该视图时,结果将加载到内存中并存储。在我对其他表做了一些应该会影响视图的更改之后,视图对这些更改一无所知 因此,当我再次调用该视图时,例如Get()方法,EF返回存储数据的值 我当然想要更新的数据。如何强制视图从DB而不是内存获取数据?还是有更好的策略 如果我能让视图意识到正在进行的更改,那就更好了。这是否可以通过实体配置实现,或者使用HasRequired()方法映射FK 编辑: 我正在使用存储库和工作单元模式。所以我不是每次都在创建和处理一个新

我有一个视图,其中包含来自多个表的数据

当我调用该视图时,结果将加载到内存中并存储。在我对其他表做了一些应该会影响视图的更改之后,视图对这些更改一无所知

因此,当我再次调用该视图时,例如Get()方法,EF返回存储数据的值

我当然想要更新的数据。如何强制视图从DB而不是内存获取数据?还是有更好的策略

如果我能让视图意识到正在进行的更改,那就更好了。这是否可以通过实体配置实现,或者使用HasRequired()方法映射FK

编辑:
我正在使用存储库和工作单元模式。所以我不是每次都在创建和处理一个新的上下文。请考虑这一点。

当您在视图上执行LINQ查询时,使用<代码> ASNoTrAcKebug()/Case>扩展方法。这将迫使EF始终使用数据库中的数据,而不是内存中的数据:

var result = from x in context.ViewSet.AsNoTracking()
             select x;

EF不会为您处理任何自动数据刷新。

您是否将EF与WCF结合使用?你有什么样的应用程序?没有,它是WPF应用程序。我调试了代码,所以我知道EF返回的实际数据。但是你是直接与dbcontext对话吗?@Sander Pham,不,请看我的编辑。