2011-10-06 93 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