2010-06-09 6 views
3

Je suis problème avec la relation ManyToMany bidirectionnelle cacheNHibernate Caching bidirectionnelle ManyToMany Relation question

cartographie côté Première:

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

cartographie Deuxième côté:

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

Le premier côté est responsable de l'insertion/mise à jour/supprimer, les entites sont bien stockées. Mais sur le second côté, le cache n'est pas mis à jour et la collection ne contient pas l'entité récemment ajoutée.

Sans cache, tout fonctionne bien ...

Répondre

3

Chaque côté de la relation a son propre cache; NHibernate n'invalidera pas le cache du second côté à cause des changements du premier côté.

Vous pouvez utiliser SessionFactory.EvictCollection pour l'invalider manuellement.

Questions connexes