2011-10-06 95 views
3

我忙于一个项目,在这个项目中,我将实现将对象与对象相关联的树结构。我发现了一篇很棒的文章,描述了非二叉树的逻辑和编码:Tree<T>: Implementing a Non-Binary Tree in C#。我认为这是一个很好的实施。C#逻辑树的持久性

然而,我的问题与我想用域驱动开发方法开发这一事实有关。那么,设计过程中出现的问题是,我的树和其他对象的组合域模型如何等同于数据持久性模型?

由于Tree实现使用泛型,因此存储数据的域对象将忽略它是树的一部分的事实。例如,我正在努力想出如何将这与使用存储库模式和nhibernate的数据检索和持久性等同起来。

我最初的想法是,我需要实现一个非常具体的自定义存储库,它将处理树的遍历和持久化。然而,目前它很朦胧。

有没有人有过这样的事情,可以分享他们的经验或提供一些代码?

+0

我不知道是否内置序列化器会序列化你的树。例如,SOAP序列化程序序列化没有问题的对象图。另一个问题是你是否想要坚持整个发束,或者宁愿单独留下它们的连接。 –

+0

谢谢Wiktor。我不想把整棵树作为一系列的数据。我需要将每个节点作为单独的数据项来存储。所以我预见坚持节点作为单独的数据项目,然后在一个单独的地方连接作为一个可行的方法。 – Ozzy

回答

0

我在NHibernate常见问题解答中发现了一个有趣的帖子,我认为这可能有助于清除这个话题上的薄雾。如果你有兴趣,看看这个:How to map a tree in NHibernate