2010-07-16 5 views
0

J'utilise un enregistrement actif de château, je charge une unité en utilisant la méthode .Find(), après la mise à jour de la base de données j'appelle entity.Refresh() mais l'entité ne rafraîchit pas, les données que j'ai changé dans la base de données ne se reflète pas dans l'état de l'entité. Je suis totalement désemparé quant à la façon de faire fonctionner cela.L'objet Castle Activerecord ne se réactualise pas

+0

utilisez-vous un cache de second niveau? –

Répondre

0

Ce problème provient probablement d'un cache NHibernate. Pour enregistrer la connexion à la base de données, si un objet a été chargé à partir de la base de données, il est conservé dans le cache (sans avoir expiré) et NHibernate vous donnera la valeur mise en cache si vous voulez obtenir cette valeur.

Si vous effectuez une mise à jour directe de base de données, vous ne le verrez pas dans l'application tant que le cache n'aura pas expiré.

Pour éviter cela, si votre base peut être mise à jour directement, vous devez désactiver le cache NHibernate.

+0

J'ai regardé autour de moi et je n'arrive pas à trouver comment je peux désactiver le cache, savez-vous comment? – Matthew

Questions connexes