У меня есть настройка класса, которая выглядит примерно так:
public abstract class Parent
{
public virtual bool IsDeleted { get; set; }
}
public class Child : Parent
{
}
public class Other
{
public virtual ICollection<Child> Children { get; set; }
}
Дочерний объект отображается как присоединенный подкласс к родительскому классу. Чилден обозначен как сумка "многие-к-одному". К сумке применен фильтр SoftDeletableFilter. Отображение фильтра выглядит так:
<filter-def name="SoftDeleteableFilter" condition="(IsDeleted = 0 or IsDeleted is null)" />
Проблема в том, что при загрузке Other.Children фильтр применяется к дочерней таблице, а не к родительской. Есть ли способ указать NHibernate применить фильтр к родительскому классу?
Изменить: вот родительское сопоставление:
<class name="Parent">
<id ..
<property name="IsDeleted" type="System.Boolean">
<column name="IsDeleted" />
</property>
<joined-subclass name="Child">
<key>
<column name="ParentId" />
</key>
...
</joined-subclass>
</class>