0

ドメイン モデルには、 または のいずれかStatusの値を持つ列挙型を持つエンティティが多数あります。ActiveDeleted

処理方法に関する推奨アプローチに関するドキュメントとアドバイスを探しています。

  1. 列挙型を持つエンティティのコレクションを取得するときStatusに、値がデフォルトで設定されているものを除外するDeleted(ケースバイケースでオーバーライド可能)

  2. エンティティの子コレクションをフェッチするとき、デフォルトで値がデフォルトで設定されているものを除外Deletedします。

Status要約すると、 enum プロパティを持つエンティティに関連するすべてのデータを効果的に保持したいのですがDeleted、デフォルトで for status の値を持つデータは除外します。

正しい方向へのポインタは大歓迎です。

4

1 に答える 1

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

于 2012-01-17T14:59:19.557 に答える