2014-03-30 2 views
0

열심히로드 엔티티를 만들려고 할 때 오류가 발생하는 WCF 서비스 프로젝트가 있습니다. (.포함).Eager Entity Framework 6을 사용하여 오류 발생 WCF로드 중

내 설정은 다음과 같이이다 :

  • 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(); 

내가이

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

등의 반환 Item에 입력 한 후 뭔가를 변경 시도 예외를 던지고 내가 [CyclicReferencesAware(true)] 추가했지만 무엇 테스트 클라이언트 여전히 폭탄을 터뜨리고있다.

범주는 자체 참조 계층 구조입니다. 그래서 그것이 처리 할 수없는 이유라고 생각합니다.

어떻게 해결할 수 있습니까?

감사합니다.

답변

1

WcfTestClient.exe는 순환 참조를 처리 할 수 ​​없습니다. 사용자 지정 코드로 테스트 해 보았습니까?

+0

나는 dbContext.Configuration.ProxyCreationEnabled = false를 추가해야한다고 생각했습니다. 그리고 CyclicReference 속성을 다시 추가하면 제대로 작동합니다. – user1307149

관련 문제