实体框架:如何检测数据库的外部变化?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (62)

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

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

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

我正在使用Entity Framework 5,面向.NET 4.0

提问于
用户回答回答于

代码:

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

不要保持你的背景。这样你就不会对旧数据产生任何问题。

用户回答回答于
db = new DbContext())
var context= ((Infrastructure.IObjectContextAdapter)db).ObjectContext;
context.Refresh(Core.Objects.RefreshMode.StoreWins, context.ObjectStateManager.GetObjectStateEntries(EntityState.Unchanged | EntityState.Modified))

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励