我正在开发一个使用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。如果没有,是否可以为单个属性禁用缓存?
答案 0 :(得分:0)
看起来这是一个已知的错误: Retrieving object from 2nd cache with lazy property fails
而且,幸运的是,它已在最新版本(3.3.2,截至今天)中修复了
只需更新NHibernate,问题就会消失。