首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >实体框架:如何检测数据库的外部更改

实体框架:如何检测数据库的外部更改
EN

Stack Overflow用户
提问于 2013-09-16 21:33:48
回答 2查看 13.2K关注 0票数 22

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

因此,我单击一个按钮,存储过程在数据库中运行,数据被更改,EF向用户显示旧数据。

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

我正在使用Entity Framework5,目标是.NET 4.0

编辑:添加的数据可用,但EF不反映对现有数据的修改。我看到了新添加的记录,但看不到我对现有记录所做的更改。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-16 22:33:51

你的DbContext应该是短暂的。创建它,运行您的查询,并处理它。

代码语言:javascript
复制
using (var context = new MyProject.DbContext())
{
    // run your query here
}

不要把你的上下文留在周围。这样你就不会有任何旧数据的问题了。

票数 17
EN

Stack Overflow用户

发布于 2013-09-16 22:26:49

代码语言:javascript
复制
db = new DbContext())
var context= ((Infrastructure.IObjectContextAdapter)db).ObjectContext;
context.Refresh(Core.Objects.RefreshMode.StoreWins, context.ObjectStateManager.GetObjectStateEntries(EntityState.Unchanged | EntityState.Modified))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18829376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档