2012-01-17 64 views
0

在域模型中,有一些具有Status枚舉的實體,其值爲ActiveDeletedNHibernate默認子集合和條件策略

我要找的文件和建議如何處理建議的方法:

  1. 時,取的是有一個Status枚舉實體的集合,以排除那些默認設置爲Deleted值(可根據具體情況重寫)

  2. 當獲取實體的子集合時,默認情況下,默認情況下排除那些值設置爲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屬性的每個實體,還是我可以將其全局定義爲具有該枚舉類型屬性的任何實體? – 2012-01-17 15:27:46

+0

沒關係,我知道了。如果我有機會,我會用流利的nhibernate版本更新你的答案。 – 2012-01-17 16:25:33