我有一个存储过程,可以更改数据库中的大量数据.此存储过程是从同时使用EF进行数据操作的应用程序调用的.

所以我点击一个按钮,在数据库中运行存储过程,更改数据,EF向用户显示旧数据.

有没有办法强制DbContext或ObjectContext刷新数据库中的数据?Refresh()可能是解决方案,但我不想 for each 可能更改的表调用此方法.我希望所有的桌子都能一口气刷新.

我使用的是实体框架5,目标明确.NET 4.0

EDIT: Added data is available but modification on existing data is not reflected by EF. I see the newly added records but I cannot see the changes I made to existing records.

推荐答案

你的DbContext应该是短暂的.创建它,运行查询,然后处理它.

using (var context = new MyProject.DbContext())
{
    // run your query here
}

不要把你的上下文留在周围.那样的话,旧数据就不会有任何问题.

Database相关问答推荐

如何将 Scylla DB 中的计数器列重置为零?

数据库是序列图中的控制器还是边界?

生产中的超大型 Mnesia 表

在哪里存储 PHP 应用程序的数据库登录凭据

这到底是做什么的 Class.forName("com.mysql.jdbc.Driver").newInstance();

repeating groups是什么意思?

从 DbDataReader 读取数据的最快方法是什么?

操作错误:FATAL: database "django" does not exist

库存数据库的最佳 struct

锁定机制(悲观/乐观)如何与数据库事务隔离级别相关?

如何在大型数据库中使用 typeahead.js

Sitecore - 将项目从 Web 移动到 Master?

SqlAlchemy 中的动态表创建和 ORM 映射

如何用 SQL 思考?

具有多列的单个固定表与灵活的抽象表

PDO SQL 状态00000但仍然错误?

如何将 DECIMAL 插入 MySQL 数据库

Android - ViewHolder 模式是否在 CursorAdapter 中自动实现?

PostgreSQL 的示例数据库

Android SQLite 数据库,为什么要删除表并在升级时重新创建