와 필터링 관계를 저장 나는 사용자가 FavoriteJobs를 다음 엔터티은 (유창함) NHibernate에
User
Job
을 가지고있다. 이것은 Job과의 다 대다 관계입니다. 또한이 연관은 활성 (아카이브되지 않은) 작업 만 반입되도록 필터링됩니다.
FavoriteJobs 연결에 대한 매핑은 다음과 같습니다.
HasManyToMany(x => x.FavoriteJobs)
.Table("UserJob")
.ParentKeyColumn("UserId")
.ChildKeyColumn("JobId")
.ApplyChildFilter<ExcludeArchivedJobsFilter>("IsArchived = :condition")
.Cascade.None();
작업은 응용 프로그램에서 언제든지 보관 및 보관 취소 할 수 있습니다.
사용자를 가져올 때 FavoriteJobs 컬렉션은 올바른 작업으로 채워지고 활성 작업 만 채워집니다.
문제는 사용자를 저장하려고 할 때 필터링 된 모든 작업이 연결이 끊어져 상호 참조 테이블에서 삭제 된 것처럼 처리된다는 것입니다 (마치 필터링 된 작업을 표시하지 않은 사용자와 마찬가지로). 더 이상 좋아하는중인).
필터링 된 항목을 그냥 필터링되고 삭제되지 않는 것으로 표시하는 패턴이 있는지 궁금합니다.
업데이트 이벤트가있을 때 매핑에서 필터를 사용 중지하는 것과 같습니다.
나는 어떤 아이디어라도 감사 할 것입니다.
어떤 유형의 컬렉션입니까? –
나는 목록과 세트로 시도했다. –