Я использую 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
, я получаю следующую ошибку, даже если объект настроен на использование кэша чтения-записи.
ReadOnlyCache: невозможно записать в
объект только для чтения
Cristal.Model.UserDefinedGroups.UserDefinedGroup
Я полностью упускаю суть или неправильно понимаю кэширование NHibernate здесь? Я ожидаю, что это выполнит удаление, а кеш позаботится о себе соответствующим образом, но, очевидно, этого не происходит.