特定の型を持ったデータの永続化

といえば良いのか。
treenodeであるようなデータを永続化したい。

interface ITreeNode{
  int getId();
  void setId(int value);
  int getName();
  void setName(string value);
  List<ITreeNode> getChildren();
  void appendChild(ITreeNode);
  void removeChild(ITeeNode);
  ITreeNode getParent();
  void setParent(ITeeNode value);
  ...
}

いくつかのテーブルに同じ型があって、それぞれ追加の列がある。etc...

うーん。