NHibernate双向ManyToMany关系缓存问题

时间:2010-06-09 11:25:34

标签: nhibernate fluent-nhibernate

我遇到了双向ManyToMany关系缓存的问题

第一面映射:

        HasManyToMany(x => x.Jobs)
            .Table("ProfileSuggestStoryJob")
            .AsSet()
            .Cascade.None()
            .ParentKeyColumn("ProfileSuggestStoryId")
            .ChildKeyColumn("JobId")
            .Cache.ReadWrite();

第二面映射:

        HasManyToMany(x => x.SuggestedProfiles)
            .Table("ProfileSuggestStoryJob")
            .AsSet()
            .Cascade.None()
            .ParentKeyColumn("JobId")
            .ChildKeyColumn("ProfileSuggestStoryId")
            .Inverse().Cache.ReadWrite();

第一方负责插入/更新/删除,entites存储得很好。但在第二方面,缓存未更新,并且集合不包含最近添加的实体。

没有缓存,一切正常......

1 个答案:

答案 0 :(得分:3)

关系的每一面都有自己的缓存;由于第一方的变化,NHibernate不会使第二方的缓存无效。

您可以使用SessionFactory.EvictCollection手动使其无效。