이 문제는 몇 년 동안 네트워크에서 발생하며 아직 좋은 해결책을 찾지 못했습니다. 주제는 그들이 NHibernate에 의해 채워 내부 순환 참조가 개체의 목록 통과 (또는 게으른 무부하을 - 일부 사이트가 게으른 수행 할 수 없습니다 SAIS) 여기 순환 참조, NHibernate 및 WCF
은 예입니다[DataContract]
class Person
{
[DataMemeber]
string Name
[DateMember]
IList<Child> myChilds;
}
[DataContract]
class Child
{
[DataMemeber]
string Name
[DateMember]
Person Father
}
내가 얻을 때 모든 사람은 내 DB에 : 서버 코드는 다음과 같습니다
ICriteria crit = session.CreateCriteria(typeof(Person)));
IList<Base> queryResult = crit.List<Base>();
내가 모든 사람 내부의 서버에 좋은 결과가 모든 사람의 목록을 사이 드 얻고, 나는 모든 아들들의 목록을 얻는다. (그리고 각 아들 안에 - 나는 그의 아들리스트가있는 Person 객체를 얻는다.)
이제 WCF를 통해이리스트를 얻으려고하면 채널이 잘못되었다. (자식에서 Person 개체를 제거하면 올바르게 작동 함).
솔루션이 문제를 해결하기 위해 노력했지만 해결하지 못했습니다. [DataContract]에 IsReference = true를 추가하면 도움이되지 않았습니다. 모든 매핑을 not.Lazyload()로 이동하면 도움이되지 않았습니다.
모든 아이디어 WCF를 다시 작성하지 않고이를 해결하는 방법은 무엇입니까? 문제는 응답의 크기 같은
감사합니다, 다니
링크가 현재 고장났습니다. – Restuta
링크가 사라졌습니다 - 404. – ssmith