我从连接表中查看了视图,并且我希望在更新视图的基表时(在ORM上下文中)使其第二级查询缓存无效。该视图像NHibernate
上的表一样映射这对NHibernate有可能吗?如何在xml映射上完成此操作? Fluent映射也会这样做
答案 0 :(得分: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 -->
现在,对映射类 Contact 的任何更改也会触发映射到视图的 ViewContact 类的缓存清理