【发布时间】:2010-10-11 10:10:47
【问题描述】:
我们有自己的自定义 ORM 包装器,其中包含 Contact、Company 等类,它们具有 Name、Address 等属性。你“创建”了一个类的实例,它隐式地从数据库中下载当前记录:
// fetch a contact with ID myRecordID from connection myConnection
Contact myContact = Contact.Create(myRecordID, myConnection);
myContact.Birthday = Date.Now;
事情是这样的:出于性能原因(以及其他考虑因素,例如事务),在设置属性时,保存不会隐式发生。相反,您必须致电save():
myContact.save(); // great! the new birthday is in the database
这很好用——除非你忘记打电话给save()。编译器不会发现问题,但上面的代码如果不保存就不会做任何有用的事情。
我想知道 API 是否可以让编译器知道,在设置属性后,如果在 Contact 实例离开范围之前调用 save() 没有,编译器应该发出警告.
【问题讨论】:
-
你有单元/集成测试吗?
-
单元测试只会确认我已经知道的:生日尚未设置。它不会告诉我为什么。