这个问题在网络上流传多年,我还没有找到好的解决方案。 主题是通过具有循环引用在其内部通过的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