2013-01-10 123 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

我尝试了一个列表和一组 –

回答