背景:我有一个具有十几个属性的对象。通过将GUID传递给构造函数来实例化该对象。此GUID是用于从数据库中检索属性值的主键。每个属性都存储在数据库中的单独表中。我们使用EF4连接数据库。
从数据库中一次获取所有属性或者在代码中实际使用属性时从数据库中获取属性值是否更好?建议的最佳做法是什么?
答案 0 :(得分:1)
我可能会更改代码以将Guid传递给静态工厂方法,然后执行查找,并将恢复的实体传递给构造函数。这样构造函数本身就不需要做太多工作。
在大多数的情况下,我会急切地做这一切 - 通常 奇怪的是有一个“感觉”简单的对象,但这可能是昂贵且容易错误的数据库访问属性时查找。是的,您应该努力在一次数据库查找中获取所有内容 - 除非其中一个属性实际上是一个集合本身,等等。如果只是从数据库中获取简单字段的情况,那么执行一次查找会很疯狂属性访问 - 也可能最终给出不一致的数据。
答案 1 :(得分:0)
在我的工作中,我们使用java / hibernate来处理与数据库相关的查询。您可以按任意方式配置它 - 延迟提取等待应用程序请求属性,或者您可以在初始查询中填充对象的属性。
我不确定标准;然而,对于我们的应用程序,我们发现首先填充属性的速度要快得多。它可能值得进行一些测试,以了解您的应用程序的行为 - 可能与我们的非常不同。