内部vb.net ORM是使用存储过程开发的,用于获取数据以填充复杂层次结构中的各个对象。我们已经从每个映射操作的存储过程转移到动态sql,它在运行时构建并执行,这应该增加功能和性能。每个类都有自己的映射代码,说明db列映射,表,基数等属性。
我的问题是,由于对象模型的复杂性,ORM /映射器代码构建的对象将调用可能比所需更多的数据,从而妨碍性能。
这是对象模型或ORM或两者的问题吗?
有人可以提出设计模式/想法来帮助管理这个问题吗?
我的第一个想法是,我们应该在映射类中有额外的功能来控制所检索数据的深度但是如何干净地实现这一点我不知道。关于这个主题的任何想法或想法都会得到很大的回应。
答案 0 :(得分:0)
像Hibernate这样的ORM使用"Lazy Fetch" strategy处理这种情况,其中任意深度的对象关联都按原样维护,但层次结构中的对象在第一次访问它们时会按需提取。您可能希望查看Proxy Pattern以了解如何完成此操作。