繁体   English   中英

NHibernate和WCF序列化(单向)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM