Nat*_*Roe 9 c# nhibernate filter joined-subclass
我有一个类设置,看起来像这样:
public abstract class Parent
{
public virtual bool IsDeleted { get; set; }
}
public class Child : Parent
{
}
public class Other
{
public virtual ICollection<Child> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Child被映射为Parent的join-subclass.Childen被映射为多对一包.这个包有一个名为SoftDeletableFilter的过滤器.过滤器映射如下所示:
<filter-def name="SoftDeleteableFilter" condition="(IsDeleted = 0 or IsDeleted is null)" />
Run Code Online (Sandbox Code Playgroud)
问题是当加载Other.Children时,过滤器将应用于Child表而不是父表.有没有办法告诉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>
Run Code Online (Sandbox Code Playgroud)
您需要将过滤器添加到父类中:
<class name="Parent">
<id ..
<property name="IsDeleted" type="System.Boolean">
<column name="IsDeleted" />
</property>
<joined-subclass name="Child">
<key>
<column name="ParentId" />
</key>
**<filter-def name="SoftDeleteableFilter" condition="(IsDeleted = 0 or IsDeleted is null)" />**
</joined-subclass>
**<filter-def name="SoftDeleteableFilter" condition="(IsDeleted = 0 or IsDeleted is null)" />**
</class>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |