【问题标题】:NHibernate default child collection and criteria strategiesNHibernate 默认子集合和标准策略
【发布时间】:2012-01-17 13:58:03
【问题描述】:

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

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

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

  2. 当获取实体的子集合时,默认排除那些默认值设置为Deleted的实体。

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

非常感谢任何指向正确方向的指针。

【问题讨论】:

    标签: nhibernate nhibernate-criteria


    【解决方案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

    【讨论】:

    • 谢谢,我只是在阅读您的博客 :) 如果默认情况下这适用于子集合以及如何将其表示为 Fluent NHibernate 中的全局过滤器,您是否知道?我是否必须将过滤器应用于每个具有 Status 属性的实体,或者我可以为任何具有 enum 类型属性的实体全局定义它?
    • 没关系,我想通了。如果有机会,我会用流畅的 nhibernate 版本更新你的答案。
    猜你喜欢
    • 2023-03-09
    • 2021-05-05
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2021-07-09
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多