我正在使用NHibernate,我的NHibernate配置中指定了一个缓存区域:
<cache region="HalfHour" expiration="1800" priority="3" />
我有一个实体定义(UserDefinedGroup
),它被设置为在读写模式下使用此缓存区域:
<class name="UserDefinedGroup" table="Message_Groups">
<cache region="HalfHour" usage="read-write" />
...
</class>
我还有一个HQL查询,设置为使用查询缓存,因为它返回了大量的UserDefinedGroup实例:
var results = Session.CreateQuery("from UserDefinedGroup order by Name")
.SetCacheable(true)
.SetCacheRegion("HalfHour")
.List<UserDefinedGroup>();
然而,当我尝试删除一个
UserDefinedGroup
实例时,即使该实体被设置为使用读写缓存,我仍会收到以下错误信息。
我是不是完全错过了重点或者在这里误解了 NHibernate 缓存?我期望这将执行删除操作,并且缓存适当地自我维护,但显然这并没有发生。ReadOnlyCache: Can't write to a readonly object Cristal.Model.UserDefinedGroups.UserDefinedGroup