NHibernate默认子集合和标准策略

时间:2012-01-17 13:58:04

标签: nhibernate nhibernate-criteria

在域模型中,有许多实体的Status枚举值为ActiveDeleted

我正在寻找关于如何处理的推荐方法的文档和建议:

  1. 在获取具有Status枚举的实体集合时,要排除默认值设置为Deleted的实体(根据具体情况可覆盖)

  2. 在提取子实体集合时,默认情况下会排除默认值设置为Deleted的实体。

  3. 总之,我实际上希望保留与具有Status枚举属性的实体相关的所有数据,但默认情况下要排除那些值为Deleted的状态。

    任何正确方向的指针都非常赞赏。

1 个答案:

答案 0 :(得分:1)

您可以在nhibernate中使用称为过滤器的功能。

示例:

  <class name="Post"  table="Posts">
     <id name="Id">
        <generator class="identity"/>
     <id>

    <property name="Title"/>
    <property name="Text"/>
    <property name="PostedAt"/>


    <filter name="NoDeleted" condition="Status <> 'Deleted'"/>
</class>

然后当你查询:

 session.EnableFilter("NoDeleted")

更多: http://ayende.com/blog/3993/nhibernate-filters