【问题标题】:Entity Framework Context dealing stale data实体框架上下文处理陈旧数据
【发布时间】:2012-02-24 11:37:13
【问题描述】:

我正在使用 Unity 注入上下文并使用以下生命周期管理器...

public class HttpContextLifetimeManager<T> : LifetimeManager, IDisposable
{
    #region IDisposable Members

    public void Dispose()
    {
        RemoveValue();
    }

    #endregion

    public override object GetValue()
    {
        object value = HttpContext.Current.Items[typeof (T).AssemblyQualifiedName];

        return value;
    }

    public override void RemoveValue()
    {
        HttpContext.Current.Items.Remove(typeof (T).AssemblyQualifiedName);
    }

    public override void SetValue(object newValue)
    {
        HttpContext.Current.Items[typeof (T).AssemblyQualifiedName]
            = newValue;
    }
}
  • 第一个页面请求:显示值。
  • 对第二页的第一个 Web 请求:更新值。
  • 对第一页的第二次 Web 请求:显示旧值。
  • 对第二页的第二次 Web 请求:显示新值。

我必须重新启动 VS 开发服务器才能让第一页显示新值。

那么上下文a)如何存在于页面请求之间并且b)特定于页面?

【问题讨论】:

    标签: unity-container object-lifetime entity-framework-4.3


    【解决方案1】:

    这与 EF 无关。生成的 UI 与实体不同步,并且实体抛出未在 UI 中报告的验证错误。如果脚手架模板生成了不仅显示模型级别错误的验证摘要,那将会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      相关资源
      最近更新 更多