2014-03-30 53 views
0

我有一个WCF服务项目,当我尝试加载实体时发生错误。 (。包括)。急于加载使用实体框架的错误WCF 6

我的设置是这样的:

  • WCF服务库项目
  • 类库项目 - EDMX坐落有
  • 类库项目 - 视图模型安置有
  • WPF项目

我花了一段时间试图解决这个序列化问题,当我渴望加载实体。

这是我现在的位置。以下作品:

[OperationContract] 
[FaultContract(typeof(HandleException))] 
[ApplyProxyDataContractResolver] 
List<Item> GetItems(); 

    using (var dbContext = new MyEntities()) 
    { 
     dbContext.Configuration.LazyLoadingEnabled = false; 
     return dbContext.Items.ToList(); 
    } 

,并显示如下:

Results

但这种故障并给出了未能调用该服务的一般错误消息

。可能的原因:服务处于脱机状态或无法访问;客户端配置与代理不匹配;现有的代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理,还原为默认配置或刷新服务来进行恢复。

这就是抛出异常

return dbContext.Items.Include(x => x.Category).ToList(); 

我试图改变返回类型Item然后像这样

return dbContext.Items.Include(x => x.Category).FirstOrDefault(t => t.Category.CategoryId == t.CategoryId); 

而且我已经加入[CyclicReferencesAware(true)]但测试客户端仍在轰炸。

类别是自引用层次结构 - 我认为这就是为什么它无法处理它。

我该如何解决这个问题?

谢谢。

回答

1

WcfTestClient.exe无法处理循环引用 - 您是否尝试过用您自己的自定义代码进行测试?

+0

我只是想出来,不得不添加dbContext.Configuration.ProxyCreationEnabled = false;然后添加CyclicReference属性,它正常工作。 – user1307149