【发布时间】:2013-09-16 13:33:48
【问题描述】:
我有一个存储过程可以更改数据库中的大量数据。该存储过程是从同时使用 EF 进行数据操作的应用程序调用的。
所以我点击一个按钮,存储过程在数据库中运行,数据被更改,EF 向用户显示旧数据。
有没有办法强制 DbContext 或 ObjectContext 刷新数据库中的数据? ObjectContext.Refresh() 可能是解决方案,但我不想为每个可能更改的表调用此方法。我希望一次刷新所有表格。
我正在使用 Entity Framework 5,目标是 .NET 4.0
编辑:添加的数据可用,但对现有数据的修改不反映在 EF 中。我看到了新添加的记录,但看不到我对现有记录所做的更改。
【问题讨论】:
-
恐怕你不能这样做。而且,也许这很好,因为在其他情况下,在此全局上下文刷新整个数据库中,您的应用程序将被选中。
-
我想知道,如果您已经兑现,DBContext 也总是直接从数据库中获取数据。您必须刷新数据而不是 dataContext 我的意思是从数据库重新加载数据?
-
@BassamAlugili,我已经澄清了问题,请看一下编辑。
-
使用 SignalR 这绝对是可能的。查看 Brij 的这篇博文:techbrij.com/…
-
@Serv,这看起来是一个不错的工具,但我没有收到有关更改的通知的问题。我不能强制 EF 从数据库加载更新的数据。它不会更新已更改实体的属性。
标签: c# database entity-framework stored-procedures