![](/img/trans.png)
[英]Fluent NHibernate - Unidirectional Mapping Between Parent and Children
[英]NHibernate and WCF Serialization(Unidirectional)
类型“ [type]”的对象图包含循环,并且如果禁用了引用跟踪,则无法序列化。
我有一个使用NHibernate作为持久层的简单类层次结构设置。
例如:
public class Parent
{
public virtual IList<Child> Children{get;set;}
}
public class Child
{
public virtual Parent Parent{get;set;}
}
这样做是为了将一个Child与一个单亲相关联,并通过外键保留在数据库中。 NHibernate部分和持久性工作得很好。 通过WCF Web服务公开此关系时,会发生此问题。 我意识到这里有一个循环引用,并且已经阅读了一些关于LINQ to SQL的解决方案,允许单向序列化,但是当不使用dbml文件时找不到解决方案。
UPDATE
另一个问题是,将一组DTO抽象化以通过Web服务公开而不是原始实体是一种常见的做法吗? 这将解决序列化问题,因为DTO类不一定需要循环引用(因为它们不是NHibernate实体)。
附加更新
我碰到了一篇可能朝正确方向的文章。 我目前正在对此进行测试,并且会成功发布(出于文章的缘故)。
最好的做法是保护您的域,不要让它跨越过程边界。 我建议使用DTO实现来抽象您的域。 还有其他好处,包括您可以提供意图显示界面(客户端不必考虑如何使用该服务)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.