使用具有属性延迟加载的memcache时的PropertyAccessException

时间:2013-01-09 17:46:29

标签: nhibernate memcached lazy-loading

我正在开发一个使用NHibernate(v 3.3.0.4000)和memcache(v 3.1.0.4000,这是最新版本)的项目。

我有一个包含相当大字符串的大字段。因为我不希望每次调用都加载这个字段,所以我使用Fluent Nhibernate将该属性配置为“延迟加载”。

除非启用了memcache,否则一切正常(我的属性是按需加载的)。我遇到了这个例外:

NHibernate.PropertyAccessException: The type System.Object can not be assigned to a property of type System.String setter of XYZ ---> System.ArgumentException: Impossible de convertir l'objet de type 'System.Object' en type 'System.String'.

我猜这个问题与“NHibernate.Caches.MemCache”的版本有关,这个版本已经很老了,而且似乎没有活着。

我想知道是否有人设法运行具有延迟属性的memcache。如果没有,是否可以为单个属性禁用缓存?

1 个答案:

答案 0 :(得分:0)

看起来这是一个已知的错误: Retrieving object from 2nd cache with lazy property fails

而且,幸运的是,它已在最新版本(3.3.2,截至今天)中修复了

只需更新NHibernate,问题就会消失。