這個問題在網絡上流傳多年,我還沒有找到好的解決方案。 主題是通過具有循環引用在其內部通過的NHibernate填充對象列表(具有或沒有遲緩裝載 - 一些網站最高審計機關它不能與懶惰來完成)循環參考,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>();
我獲取服務器的好成績副作用所有的人的名單,而每個人內我得到一個所有兒子的名單(並在每個兒子裏面 - 我得到一個人的對象,裏面有一個他的兒子列表等....)
現在,試圖通過WCF獲取此列表錯誤的通道。 (如果我從孩子中刪除Person對象 - 它工作正常)。
解決方案我試過並沒有解決這個問題: IsReference = true加入[DataContract] - 沒有幫助。 將所有映射移動到not.Lazyload() - 沒有幫助。
任何想法如何解決這個問題,而不重寫WCF?
感謝, 達尼
鏈接現在被打破。 – Restuta 2011-02-02 12:53:28
鏈接仍然消失 - 404。 – ssmith 2011-04-08 16:09:17