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