У меня есть настройка класса, которая выглядит примерно так:
public abstract class Parent
{
public virtual bool IsDeleted { get; set; }
}
public class Child : Parent
{
}
public class Other
{
public virtual ICollection<Child> Children { get; set; }
}
Дочерний элемент отображается как объединенный подкласс Parent.
Childen отображается как сумка «многие к одному». К сумке применен фильтр с именем SoftDeletableFilter. Отображение фильтра выглядит так:
<filter-def name="SoftDeleteableFilter" condition="(IsDeleted = 0 or IsDeleted is null)" />
Эта проблема заключается в том, что при загрузке Other.Children фильтр применяется к дочерней таблице, а не к родительской таблице. Есть ли способ сказать NHibernate, чтобы применить фильтр к родительскому классу?
Edit:
Вот родительское отображение:
<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>