NHibernate Двунаправленный вопрос кэширования отношений ManyToMany - PullRequest
3 голосов
/ 09 июня 2010

У меня проблема с двунаправленным кэшированием отношений 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();

Первая сторона отвечает за вставку / обновление / удаление, объекты хорошо сохранены. Но с другой стороны, кэш не обновляется, и коллекция не содержит недавно добавленную сущность.

Без кеша все работает нормально ...

1 Ответ

3 голосов
/ 09 июня 2010

Каждая сторона отношений имеет свой собственный кеш; NHibernate не сделает недействительным кеш второй стороны из-за изменений в первой стороне.

Вы можете использовать SessionFactory.EvictCollection, чтобы аннулировать его вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...