2010-04-09 2 views
1

데이터 액세스 모델로 LINQ-To-SQL을 사용하는 수많은 WCF 서비스가있는 응용 프로그램이 있습니다. "Dispose 후 액세스 된 DataContext"예외가 많은 문제가 있습니다. 이 예외가 무엇인지 이해하고 있으며 액세스하려고하는 데이터를 "초기화"하지 않았기 때문에이 예외가 발생하고 있습니다. 부모 개체가 서비스에 의해 반환되기 전에 모든 배열에서 ToList()를 호출했다고 제안하는 기사를 많이 읽었습니다.WCF "Dispose 후 액세스되는 DataContext"

제 문제점은이 예외가 발생하고 어디에서 발생했는지 알 수 없으므로 초기화되지 않은 항목을 알 수 없습니다.

근본 원인을 파악하는 가장 좋은 방법을 조언하는 사람이 있습니까?

는 (필자는 MS 서비스 추적 뷰어를 사용하고이 나에게 어떤 추가 정보를 제공하지 않는 것) 나는 문제의 근본 원인은 LINQ - 투 -의 클래스 있다는 것을 알게되었다

답변

1

DataContract 특성으로 장식되었지만 IsReference 속성을 true ([DataContract(IsReference=true)])로 설정해야하는 sql. DataMember가 아니며 ([DataMember(EmitDefaultValue=false)])이 될 필요가있는 해당 클래스의 속성도있었습니다. 이 두 속성을 설정하면 문제가 해결되었습니다.

관련 문제