2011-07-17 45 views
0

好的, 在我的解決方案中,我通過將IsDeleted設置爲true而不是刪除實體來實現softdeletes。nhibernate softdelete覆蓋

我還在類Mapings中添加了Where IsDeleted = false。

現在我所有的select查詢都會被執行,並將結果限制在那些未被刪除的地方。

但現在在具體的查詢中,我需要顯示那些被刪除的工具。 如何在某些查詢中覆蓋此行爲?

請幫忙。 謝謝 Luka

+0

你能發佈映射的相關部分嗎? –

回答

1

+1過濾器的工作非常適合場景的完全一樣,但要記住他們不多到一,一-to-one關聯工作。

所以對於類FooBar其中Bar是軟刪除和FooBar和關聯映射(即Foo.Bar)如果你取Foo和Bar是軟刪除實體仍將水合的情況下, 。

這是有問題的,當你包含類似

if (Foo.Bar != null) { 
    //will never execute 
} 

邏輯您可以通過庫上的一個微不足道的改變而改變這種行爲,我已經寫上 http://savale.blogspot.com/2010/01/enabling-filters-on-mapped-entities.html後,顯示瞭如何做到這一點。它描述了v2.1.2的運行情況,但它與v3.0 + pf相似NHibernate