NHibernate将过滤器应用于袋
我有一个用XML映射的父/子关系。一个预订可以有许多付款,因此我的预订模型有一个IList payments{get;set;}属性,我将它映射到XML中,如下所示:NHibernate将过滤器应用于袋,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我有一个用XML映射的父/子关系。一个预订可以有许多付款,因此我的预订模型有一个IList payments{get;set;}属性,我将它映射到XML中,如下所示: <bag name="Payments" inverse="true"> <key column="BookingId"/> <one-to-many class="Payment, NHibernateOneToMany"/> </bag> <bag name="P
<bag name="Payments" inverse="true">
<key column="BookingId"/>
<one-to-many class="Payment, NHibernateOneToMany"/>
</bag>
<bag name="Payments" inverse="true">
<key column="BookingId"/>
<one-to-many class="Payment, NHibernateOneToMany"/>
<sql>SELECT * FROM Payment WHERE Deleted = 0 AND BookingId = bookingId</sql>
</bag>
这很好,但现在我需要引入软删除的概念,因此我在付款中添加了一个已删除的bool列,我希望预订付款只包含未删除的付款,所以我想做如下操作:
<bag name="Payments" inverse="true">
<key column="BookingId"/>
<one-to-many class="Payment, NHibernateOneToMany"/>
</bag>
<bag name="Payments" inverse="true">
<key column="BookingId"/>
<one-to-many class="Payment, NHibernateOneToMany"/>
<sql>SELECT * FROM Payment WHERE Deleted = 0 AND BookingId = bookingId</sql>
</bag>
从付款中选择*,其中已删除=0且BookingId=BookingId
我已经研究过如何使用过滤器,但它们似乎只有在启用时才提供使用过滤器的功能-我希望此属性每次都排除所有已删除的项目,这样就不会出现错误
实现这一点的最佳方法是什么?您可以使用行李映射的简单
where
。如果Deleted
是付款上的映射属性,则此映射应起作用:
<bag name="Payments" inverse="true" where="Deleted = 0">
<key column="BookingId"/>
<one-to-many class="Payment, NHibernateOneToMany"/>
</bag>
您可以使用行李映射的简单
where
。如果Deleted
是付款上的映射属性,则此映射应起作用:
<bag name="Payments" inverse="true" where="Deleted = 0">
<key column="BookingId"/>
<one-to-many class="Payment, NHibernateOneToMany"/>
</bag>