有没有办法通过在 nhibernate 2.2 上映射来设置列表条件?

Is there a way to put conditions on listing via mapping on nhibernate 2.2?

我正在处理一个遗留系统,该系统的代码没有文档,也没有遵循任何模式。

系统的某些部分执行 session.Query<Entity>(); 等查询,其他部分执行 Repository.GetAll();.

使用 Repository 的代码是有组织的,我在那里没有任何问题,但是使用 session 的部分是一团糟,控制器中几乎每个实体都有很多逻辑和查询。

最近我们需要对一个实体进行更改并添加一个名为 active 的列。

MyClass.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

<class name="my_class" table="my_class" lazy="true">
    <id name="Id" column="id" type="Int32" unsaved-value="0">
    <generator class="native">
        <param name="sequence">sq_my_class</param>
    </generator>
    </id>
    
    <property column="name" type="String" name="Name" not-null="true" length="200" />
    <property column="area" type="Double" name="Area" not-null="true" />
    <property column="type" type="Int32" name="Type" not-null="true" />
    <property column="fiscalization" type="Boolean" name="Fiscalization" not-null="true" />         
    <property column="active" type="Boolean" name="Active" not-null="true" />
</class>

我想阻止列出任何未激活的对象,但我不想在整个代码中搜索此实体的查询,因为我害怕留下一些东西,相反,我想知道是否我可以通过映射来做到这一点。

尝试在 class 元素上设置 where="active = 1"

<class name="my_class" table="my_class" lazy="true" where="active = 1" >