0

已使用存储过程开发了一个内部 vb.net ORM,以获取数据以填充复杂层次结构中的各个对象。我们已经从每个映射操作的存储过程转移到在运行时构建并执行的动态 sql,这应该会增加功能和性能。每个类都有自己的映射代码,说明属性到 db 列映射、表、基数等。

我的问题是,由于对象模型的复杂性,由 ORM/映射器代码构建的对象可能会调用比需要更多的数据,从而影响性能。

这是对象模型或 ORM 或两者都有问题吗?

有人可以提出一个设计模式/想法来帮助管理这个问题吗?

我的第一个想法是,我们应该在输出映射类中有额外的功能来控制检索数据的深度,但我不知道如何干净地实现这一点。关于这个主题的任何想法或想法都将受到极大的欢迎。

4

1 回答 1

0

像 Hibernate 这样的 ORM 使用“Lazy Fetch”策略处理这种情况,其中与任何深度的对象关联保持原样,但层次结构中的对象在第一次访问时会按需获取。您可能想查看代理模式以了解如何完成此操作。

于 2012-08-24T09:42:08.537 回答