0

我正在分析数据库调用,我注意到每个请求都有很多数据库调用。我认为我可以通过将人员数据 (DTO) 存储到会话或缓存中来减少数据库调用。

我们正在使用 NHibernate,问题是每次我们需要 person 的单个属性时都会加载 person 的完整对象图。所以我想知道是否有一种方法可以一次加载完整的对象图,然后将其存储在内存中的某个位置,这样就不是每个请求都必须加载 person 对象。

是否有一些架构最佳实践来实现这一点?还是有其他一些最佳实践来处理他的这种情况?

4

1 回答 1

0

NHibernate 提供了一个 L2 缓存,它对从同一个 SessionFactory(应该是静态的)创建的所有 ISession 对象都有效。您可以使用 InMemory 提供程序,甚至可以使用 AppFabric、SqlServer、Redis 等外部提供程序。

我认为这对您来说是最简单的解决方案,因为您只需更改 NHibernate 配置。

一些起始参考-> http://www.sharpcoder.co.uk/post/2012/01/04/NHibernateCachesAppFabric.aspx

于 2012-08-30T11:40:07.143 回答