2013-06-18 5 views
6

私は結合されたテーブルからビューを作成しました。ビューのベーステーブルが(ORMコンテキスト内で)更新されると、その第2レベルのクエリキャッシュが無効になりたいと思っていました。ビューは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 --> 

そして今、どんな茶と呼ばれていますマップされたクラスへのNGESは問い合わせも視野

+1

1にマッピングされViewContactクラスのキャッシュクリーニングをトリガーするには、日常の何かを学ぶ....キャッシュ領域は、この方法を共有することができ知っていたことはありません。 – Rippo

関連する問題