【发布时间】:2010-12-06 08:38:42
【问题描述】:
这个问题多年来一直在网络上流行,我还没有找到好的解决方案。 该主题正在传递一个对象列表,其中包含由 NHibernate 填充的循环引用(有或没有延迟加载 - 有些网站说它不能用延迟完成)
示例如下:
[DataContract]
class Person
{
[DataMemeber]
string Name
[DateMember]
IList<Child> myChilds;
}
[DataContract]
class Child
{
[DataMemeber]
string Name
[DateMember]
Person Father
}
当我尝试获取数据库中的所有人员时: 服务器代码将是:
ICriteria crit = session.CreateCriteria(typeof(Person)));
IList<Base> queryResult = crit.List<Base>();
我在服务器端得到了一个很好的结果——一个所有人的列表,在每个人里面我得到一个所有儿子的列表(在每个儿子里面——我得到一个 Person 的对象,里面有一个 List他的儿子等....)
现在,尝试通过 WCF 获取此列表会使通道出错。 (如果我从孩子身上移除 Person 对象 - 它工作正常)。
我尝试过但没有解决此问题的解决方案: 将 IsReference=true 添加到 [DataContract] - 没有帮助。 将所有映射移动到 not.Lazyload() - 没有帮助。
任何想法如何在不重写 WCF 的情况下解决这个问题?
谢谢, 丹妮
【问题讨论】:
标签: wcf fluent-nhibernate