2010-03-15 3 views
0

J'utilise un UserType pour gérer une colonne (Created) dans ma base de données. Lors de l'enregistrement sur la base de données, je vérifie simplement si la propriété en question est égale à DateTime.MinValue, et si c'est le cas, la met à jour avec DateTime.Now (remplaçant NullSafeSet). Cette mise à jour n'est cependant pas immédiatement reflétée par nhibernate, et si je charge à nouveau l'objet sans l'expulser, la valeur de Created sera toujours DateTime.MinValue.Valeur NHibernate UserType sur l'objet

Existe-t-il d'autres moyens, pour obtenir la valeur que NHibernate renvoie pour renvoyer la valeur mise à jour, que d'utiliser Session.Evict()?

Répondre

1

Vous pouvez (et vous devriez probablement) le faire en vous connectant aux événements pré-insertion et pré-mise à jour au lieu d'utiliser IUserType. Consultez this question pour plus d'informations.

Pour faire ce que vous voulez pour votre entité, vous pouvez lancer evt.Entity vers l'interface qui prend en charge votre champ (IHasLastModified dans l'exemple) et définir la valeur.

+0

Juste ce dont j'avais besoin: o) Merci. – hhravn

Questions connexes