2013-06-18 3 views
6

Я сделал вид из объединенных таблиц, и я хотел, чтобы его кеш-сервер второго уровня был недействительным, когда базовая таблица (ы) обзора обновлена ​​(в контексте ORM). Вид отображается как таблица на NHibernateЕсть ли способ для NHibernate информировать кеш запросов из представлений, чтобы они были недействительными?

Возможно ли это на NHibernate? Как это делается при отображении xml? Свободное картирование будет делать также

ответ

6

Верьте или нет, даже это возможно с NHibernate. Если бы, например, класс отображенной как это:

<class name="Contact" table="[dbo].[Contact]" lazy="true" > 
    <cache usage="read-write" region="ShortTerm"/> 

И есть вид на верхней части таблицы [dbo].[Contact], которая отображается в другой класс:

<class name="ViewContact" table="[dbo].[ViewContact]" lazy="true" > 
    <cache usage="read-write" region="ShortTerm"/> 
    <!-- at this moment the View and table are treated differently --> 

Тогда магия установка идет непосредственно под <cache> и так и называется <synchronize>

<class name="ViewContact" table="[dbo].[ViewContact]" lazy="true" > 
    <cache usage="read-write" region="ShortTerm"/> 
    <synchronize table="[dbo].[Contact]"/> 
    <!-- now both caches are synchornized --> 

и теперь, любой ча НГРЭС в отображенной класс Контакты также запустит очистку кэша в ViewContact класса, отображенным на взгляд

+1

+1, вы узнаете что-то каждый день .... Никогда не знал, что область кэш может быть совместно этот путь. – Rippo

Смежные вопросы