gpt4 book ai didi

entity-framework - Entity Framework 中的 View 不会更新

转载 作者:行者123 更新时间:2023-12-04 08:35:50 25 4
gpt4 key购买 nike

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

当我调用该 View 时,结果将加载到内存中并存储。在我对应该影响 View 的其他表进行一些更改后, View 对更改一无所知。

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

我当然想要更新的数据。如何强制 View 从数据库而不是从内存中获取数据?或者有更好的策略吗?

如果我能让 View 知道所做的更改,那就更好了。这是否可以通过实体配置来实现,也许可以通过使用 HasRequired() 方法来映射 FK?

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

最佳答案

当您在 View 上执行 Linq 查询时,请使用 AsNoTracking()扩展方法。这将强制 EF 始终使用数据库中的数据而不是内存:

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

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

关于entity-framework - Entity Framework 中的 View 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11759067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com