2013-01-10 159 views
1

過濾的關聯我有以下實體保存與(流利)的NHibernate

User 
Job 

用戶已經FavoriteJobs。這是與Job的多對多關聯。 此外,此關聯被過濾,因此只有活動(未歸檔)的作業被提取。

FavoriteJobs關聯的映射如下所示。

HasManyToMany(x => x.FavoriteJobs) 
.Table("UserJob") 
.ParentKeyColumn("UserId") 
.ChildKeyColumn("JobId") 
.ApplyChildFilter<ExcludeArchivedJobsFilter>("IsArchived = :condition") 
.Cascade.None(); 

的作業可以存檔,並在從應用程序的任何時間取消封存。

提取用戶時,FavoriteJobs集合中填充了正確的作業,只有活動的作業。

問題是,當我想保存一個用戶時,所有被過濾的作業都被視爲它們的關聯已被破壞並從交叉引用表中被刪除(就像用戶將過濾的作業標記爲不是再也不喜歡)。

我想知道是否有任何模式將過濾的條目標記爲只是過濾和不刪除。

就像有更新事件時從映射禁用過濾器。

我會很感激任何想法。

+0

什麼類型的收集? –

+0

我嘗試了一個列表和一組 –

回答