即使我使用特定的ORM框架,Bold for Delphi,我对框架无关的理论观点更感兴趣。
所以问题是关于持久对象和瞬态属性以及初始值标记。
初始标记指定在创建拥有对象的实例时将获取的value属性。
但是,当随后从持久性加载此对象时,transient属性的值应该是什么?
是否应再次应用初始值标记?从逻辑上讲,它应该是,否则它将被取消分配(null
)。
我在任何文档中找不到关于此特定案例的任何规范。
答案 0 :(得分:2)
我们不能仅在DB记录中创建对象 - 因为我们会丢失所有瞬态属性。因此,在加载持久对象时,只能在已创建的实例中完成。并且没有其他方法可以在不使用基础对象构造函数的情况下进行实例化,基础对象构造函数设置初始值。当然,有些语言可以解决它,但为什么呢?