【问题标题】:Caching objects and stuff in NHibernate在 NHibernate 中缓存对象和东西
【发布时间】:2010-07-09 01:11:19
【问题描述】:

我已经为来自数据访问的对象编写了自己的缓存层。我的理由是我希望我的数据访问层能够做到这一点——数据访问。我真的不希望它担心缓存,我只想在需要从数据库中获取数据时进入该层。也许这不是思考问题的正确方式——如果我偏离了轨道,请告诉我。

无论如何,到目前为止,我至少遇到了一个问题。在一种情况下,我从 NHibernate 加载一个对象,并在一个请求中将其粘贴到缓存中。在下一个请求中,我从缓存中获取该对象,对其进行修改,然后返回到 NHibernate 以保存它。显然,NHibernate 呕吐了,在这个特定的实例中出现了 "Illegal attempt to associate a collection with two open sessions" 异常。

所以我的问题是,我想,有什么我应该注意或做的事情来完成这项工作吗?还是应该只使用 NHibernate 内置的二级缓存?

【问题讨论】:

    标签: c# nhibernate


    【解决方案1】:

    NHibernate 有缓存是有原因的.. 使用它:)

    您会发现二级缓存提供程序有很多选择,它们为您提供更大的灵活性,而且比您自己构建它更便宜。如果您决定需要在多个系统上运行服务,那么一个完美的例子就是 memcache。

    【讨论】:

    • 太棒了,谢谢——是的,memchached 是我希望支持的东西。现在我想起来了,我真的没有任何场景可以缓存 来自 DB 或 NHibernate 的数据,所以这是有道理的。
    猜你喜欢
    • 2014-12-20
    • 2019-03-16
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2015-08-10
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多