2011-01-13 116 views
0

你好,我收到錯誤「ObjectContext實例已被處置,不能再用於需要連接的操作」。當我從wcf服務運行一些方法時。他們都使用一個新的上下文對象,其中大多數運行沒有問題。然而,這一個不斷給上面雖然有幾個方法有類似的實現成功上面幾行中在我的代碼中的錯誤:實體框架objectcontext過早結束

public CustomAuthentication.WebService.Application GetApplicationByUrl(string url) 
     { 
      try 
      { 
       using (AuthenticationEntities2 auth = new AuthenticationEntities2()) 
       { 
        Application app = auth.Applications.Where(a => a.Url.Contains(url)).FirstOrDefault(); 

       return app; 
      } 
     } 
     catch (Exception ex) 
     { 
      throw new FaultException(ex.Message + "\r\n" + ex.StackTrace + "\r\n" + ex.InnerException); 
     } 
    } 

我也開始看到來自VS這個錯誤「的基礎連接已關閉:這是預期的連接保持活力被服務器關閉。「所以我認爲這是一個序列化我的wcf服務中的對象的問題。所以我做了一些跟蹤服務,發現了上面的錯誤。所以現在相信它的實體相關。有任何想法嗎?

回答

1

嘗試關閉ObjectContext上的延遲加載。很可能你的應用程序包含導航屬性,它會在序列化期間觸發延遲加載。

+0

賓果。謝謝拉迪斯拉夫。另外,我正在閱讀Lerman的書,她建議在wcf操作期間僅使用poco's來消除這些類型的問題。我想知道你對此有何看法? – 2011-01-15 23:18:20