2012-02-24 128 views
0

我使用統一注入上下文,並使用以下一生經理陳舊的數據...實體框架內處理

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請求:顯示新值。

我必須重新啓動VS開發服務器才能讓頁面1顯示新值。

那麼上下文a)如何能夠在頁面請求和b)之間生存?

回答

0

這與EF無關。生成的用戶界面與實體不同步,實體拋出未在用戶界面中報告的驗證錯誤。如果腳手架模板生成的驗證摘要不僅會顯示模型級別的錯誤,則會有所幫助。