2012-01-17 11 views
0

ドメインモデルでは、Status列挙型を持ち、ActiveまたはDeletedの値を持ついくつかのエンティティがあります。NHibernateのデフォルトの子コレクションと基準戦略

私が処理する方法の推奨アプローチに関するドキュメントやアドバイスを探しています:Status列挙型を持つエンティティのコレクションをフェッチする場合、デフォルトでDeletedに設定された値を有するものを除外するために、

  1. エンティティの子コレクションを取得する場合、既定では値がDeletedに設定されているエンティティをデフォルトで除外します(デフォルトでは除外されます)。要約すると

、私は効果的Status列挙型プロパティを持つエンティティに関連するすべてのデータを維持したいが、デフォルトではステータスのDeletedの価値を有するものを除外します。

正しい方向のポインタがあれば幸いです。

答えて

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

+0

おかげで、私はちょうどあなたがのトップをオフに知っています:)あなたのブログを読んでいましたこれがデフォルトで子コレクションに当てはまる場合はあなたの頭と、Fluent NHibernateでグローバルフィルタとしてこれを表現する方法は? Statusプロパティを持つ各エンティティにフィルタを適用する必要がありますか、またはenum型のプロパティを持つ任意のエンティティに対してフィルタをグローバルに定義できますか? –

+0

それは大丈夫です、私はそれを理解しました。私がチャンスを得たら、流暢なnhibernateのバージョンであなたの答えを更新します。 –