处理过时数据的实体框架上下文



我正在使用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)如何特定于页面呢?

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

最新更新