열심히로드 엔티티를 만들려고 할 때 오류가 발생하는 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();
}
그리고 표시이 :
그러나이 결함 및 서비스를 호출하는 데 실패 일반 오류 메시지
에게 제공합니다. 가능한 원인 : 서비스가 오프라인이거나 액세스 할 수 없습니다. 클라이언트 측 구성이 프록시와 일치하지 않습니다. 기존 프록시가 유효하지 않습니다. 자세한 내용은 스택 추적을 참조하십시오. 새 프록시를 시작하거나 기본 구성으로 복원하거나 서비스를 새로 고침하여 복구를 시도 할 수 있습니다.
이
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)]
추가했지만 무엇 테스트 클라이언트 여전히 폭탄을 터뜨리고있다.
범주는 자체 참조 계층 구조입니다. 그래서 그것이 처리 할 수없는 이유라고 생각합니다.
어떻게 해결할 수 있습니까?
감사합니다.
나는 dbContext.Configuration.ProxyCreationEnabled = false를 추가해야한다고 생각했습니다. 그리고 CyclicReference 속성을 다시 추가하면 제대로 작동합니다. – user1307149