2011-01-13 122 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