假设我有一个复合类PharmaProduct
(代表制药公司的产品层次结构)和它的数据库表。我想了两种将数据加载到PharmaProduct
对象中的方法。
(1) 当一个对象被实例化时,构造整个对象树。对树进行更改并通过对树应用递归循环来保留这些更改(这实际上是 C# 的DataSet
工作方式)。
(2) 加载一个节点。仅在以下情况下加载其他节点
PharmaProduct GetParent()
或者,
List<PharmaProduct> GetChldren()
被调用(实际上是直接访问数据库)。对节点进行更改。只保存那个节点。
这种类型的表格可能有一千个条目,具体取决于制药公司生产的物品类型。所以在那种情况下,我认为第一种方法太笨拙(而且还消耗内存)。
如果出现任何复合模式问题,我应该如何实际进行数据库访问?