大部分关于NHibernate懒惰加载的知识是,最好是使用它,而不是使用它。看起来像减少数据库访问是合理的,以减少瓶颈。但很少有东西没有权衡,当然它通过强制你拥有virtual
属性来限制设计。但我也注意到一些开发人员在某些经常使用的对象上关闭延迟加载。什么时候应该避免使用NHibernate的延迟加载功能?
这让我想知道是否存在一些使用延迟加载来伤害数据访问性能的确定情况。
所以我想知道,什么时候应该避免延迟加载我的一个NHibernate持久对象?
延迟加载的缺点仅仅是在额外的处理时间,还是可以nhibernate延迟加载也增加了数据访问时间(例如,通过额外的往返数据库)?
谢谢!
但是如果你在项目变得如此庞大之后开始使用lazyloading,那么改变很多东西的时间就晚了。我认为最好的方法是在单个查询中找出需要从数据库中提取的数据。在这种方法中,你可以后者缓存这些对象,但不能缓存那些有延迟加载的对象。 – Meysam 2017-11-28 01:49:06